1.脚本格式:
声明位于shell脚本的行首,通常形式如下:
- #!/bin/sh
- #!/bin/bash
其中#表示注释,!声明所使用的shell,后面为所使用shell的绝对路径。
2.常用函数
echo:shell输出语句,可不接参数使用。其常用参数为:
- -n:不换行
- -e:将通配符按照格式进行处理,如:
- \a 发出警告声;
- \b 删除前一个字符;
- \c 最后不加上换行符号;
- \f 换行但光标仍旧停留在原来的位置;
- \n 换行且光标移至行首;
- \r 光标移至行首,但不换行;
- \t 插入tab;
- \v 与\f相同;
- \\ 插入\字符;
- \nnn 插入nnn(八进制)所代表的ASCII字符;
read:获取目标输入,将输入赋值给变量。使用方法如下:
- read a "Please input a:"——输出”Please input a:“ 并将输入的值传递给变量a;
- read a b——无输出,并将输入的值传递给变量a与b,以空格分割;
- read——无输出,并将输出传递给$REPLY
test:用于执行表达式,并通过$?查看表达式的值。(0真1假)
- 对于每条Linux命令而言,都有其方法的退出状态,同样可以通过$?查询,0为成功,1为失败。
3.条件判断语句
if:条件语句,具体写法如下:
- if expression1
- then
- commands1
- elif expression2
- then
- commands2
- else
- commandsn
- fi
case:选择语句,具体写法如下:
- case expression1 in
- pattern1)
- command1
- ;;
- pattern2)
- commands2
- ;;
- ……
- *) #缺省执行
- commandsn
- ;;
- pattern1)
- esac
4. 循环控制语句
for:循环语句,具体写法如下:
- for variable in list:
- do
- commands
- done
其中list需要是一个可迭代对象,如:列表、命令、字符串、文件名列表等。for循环执行的次数取决于可迭代对象的长度。一般的,循环中需要出现循环变量,但不绝对。
while、until:循环语句,具体写法如下
- while expr
- do
- commands
- done
首先执行expr,判断其退出状态,若为0则执行循环体内的commands直至expr表达式结果非0;until则与之相反。
break [n]、continue [n]:循环跳出语句,用于跳出第n重循环。
5.进程控制语句
exit n:退出脚本,其中n用于代表出错代码,从0-255;一般约定0代表正常退出;
sleep n:睡眠n秒钟;