1、特殊符号
1-1、反引号的使用:
在shell脚本编程中,反引号`...`的作用是进行命令替换,若用户提交给shell执行的shell命令中出现一对反引号``,并且反引号括起来的字符串也是一条可以运行的shell命令时,Shell会先运行反引号里的Shell命令,然后将运行结果替换重组到当前的shell命令中(PS:反引号内部无法再嵌套反引号,可以用echo $(命令)来代替反引号的作用)。
1-2、通配符的使用:
常用通配符:
”*“:匹配0个或多个字符,如a*b a与b之间可以有任意长度的任意字符,也可以一个都没有,a*b自动匹配到a与b之间有任意个字符的文件/目录。如aabcb、axyz等。
”?":匹配任意一个单个字符,如a?b, 自动匹配到a与b之间只有一个字符的文件/目录
{string1,string2...}:匹配string1或string2(或更多)其一字符串,如a{abc,xyz,123}b 自动匹配a与b之间有指定字符串的文件/目录。
1-3、特殊运算符的使用:
一些运算符号在shell中有其特殊意义,如*号在shell命令中不作处理会被默认识别为通配符,而在shell脚本中进行乘除运算需要用到运算符*号时,需要在*前加上转义符号“\"进行转义,同理,右移位符“>>”在shell中被默认为输出追加重定向,也需要在前面加上“\"转义。尤其要注意位运算的几个符号,如>>,|,~ 等。
2、输出重定向
输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重定向到指定文件中,这样该命令输出的内容就不显示在终端屏幕上,而是写入到指定文件中。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后打开该文件,就可以查看输出信息。
">"可以把输出重定向到文件中而非屏幕上。一般格式为:命令>文件名,注意输出重定向的内容会覆盖指定文件原有的内容,指定文件中的内容每次都是对应命令最新执行的结果。如果要使用输出重定向往同一个文件中输出执行多次命令的运行结果,为避免指定文件只能存放最近一次命令的输出重定向内容,shell提供追加重定向”>>"。输出追加重定向可把命令的输出结果追加到指定文件的末尾而不破坏文件原有内容。
切记:在使用输出重定向时,若指定的文件是某些系统文件,如存储环境变量的/etc/profile,千万千万不能使用“>",只能使用”>>"。因为如果使用">",会把系统文件的原有内容都覆盖掉,可能导致整个系统的异常。
3、管道
当需要将一个shell命令的输出结果传递到另一个shell命令作为输入时,可以使用管道功能。管道可以把一系列命令连接起来,即第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推,显示在屏幕上的是带管道命令行中最后一个命令的输出。使用管道符"|"来建立一个多条shell命令联合执行的命令,通常配合管道使用的命令有echo,wc或cut,grep,sort等过滤命令。