shell脚本入门
1、查看当前系统谁在登录:who
2、数出当前系统的登录用户:who | wc -l(l-->line,w-->word,c-->character)
3、小型shell脚本开发周期:$cat > nusere 新建文件,使用cat复制终端的输入
who | wc -l 输入程序内容
^ D Ctrl+D表示end-of-file
$chmod +x nusere 给此文件添加执行的权限
$./nusere 执行脚本,输出结果,或者/bin/sh nusere
4、#!:填写脚本执行路径,shell脚本通常第一行缩写内容为 #! /bin/sh
5、命令与参数
(1)cd /work ; ls -l abc
(2)命令名称是命令行的第一个项目,通常后面会跟着选项(option),任意额外的参数都会放在选项
之后
(3)选项的开头是破折号,后面跟着一个字母,选项可有可无,有的可能需要加上,有的则可以合并
ls -l nusere,ls -lt nusere
(4)长选项使用
cd abc.c
patch --verbose --backup -p1 < /temp/abc.c (I/O重定向,该指令从文件中读取数据,
而不是从键盘输入)
(5)分号(;)用来分隔同一行里面的多条命令;&符号标志shell将在后台执行其前面的命令,这意味
着shell不用等该命令执行完,就可以执行下一条命令
(6)shell识别的三种基本命令:内建命令、shell函数、以及外部命令
内建命令:就是shell本身所执行的命令
shell函数:shell函数是功能健全的一系列程序代码,以shell语言写成,可以像命令那样引用
外部命令:外部命令是由shell的副本所执行的命令
a:建立一个新的进程,此进程即为shell的一个副本
b:在新的进程里,在PATH变量所列出的目录中,寻找特定的命令
c:在新的进程里,以所找到的新程序取代执行中的shell程序并执行
d:程序完成后,最初的shell会从终端读取下一条命令,或者执行脚本里的下一条命令
a:格式是字幕或者下划线开头,后面可接任意长度的字母、下划线、数字
b:变量名称长度不限制,变量赋值长度不限制
c:书写过程中不能出现空格
d:单行可进行多次赋值:firstname=sda lastname=rew name=fjdskfjdksa
变量值包含空格时可以使用引号:fullname="fdsa hgf kjh"
变量二次引用不用双引号:oldname=$fullname
(8)简单的echo输出
(9)华丽的printf输出
printf "the first programalwaysprints ‘%s,%s‘" HELLO WORLD
-->the first programalwaysprints ‘HELLO,WORLD‘
(10)基本的I/O重定向:标准输入、标准输出、标准错误输出
I/O重定向就是你通过与终端交互,或是在shell脚本里设置。重新安排从哪里输入或者输出到
哪里
(11)重定向与管道
a:以>改变标准输入 program < file 将输入改为file
b:以>改变标准输出 program > file 将输出改为file
>:重定向符在目标文件不存在时新加文件,如果目标文件已存在,则会覆盖,原本文件数
据丢失
c:以>>附加到文件 program >> file 将标准输出内容附加到file的结尾处
d:管道"|",program1 | program2 将program1的标准输出作为program2的标准输入
可把两个以上的程序衔接在一起,也大大的提高了执行的速度
eg:tr -d ‘\r‘ < dos-file.txt | sort > UNIX-file.txt 先删除文件中的回车,在排
序,最后输出到文件中
(12)特殊文件/dev/null与/dev/tty 46
本文出自 “tabsang成长历程” 博客,请务必保留此出处http://tabsang.blog.51cto.com/6647507/1655691
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。