1、test 测试命令
①数值测试
· -eq:等于则为真
· -ne:不等于则为真
· -gt:大于则为真
· -ge:大于等于则为真
· -lt:小于则为真
· -le:小于等于则为真
②字符串测试
· = :等于则为真
· != :不相等则为真
· -z 字符串:字符串长度伪则为真
· -n 字符串:字符串长度不伪则为真
③文件测试
· -e文件名:如果文件存在则为真
· -r文件名:如果文件存在且可读则为真
· -w文件名:如果文件存在且可写则为真
· -x文件名:如果文件存在且可执行则为真
· -s文件名:如果文件存在且至少有一个字符则为真
· -d文件名:如果文件存在且为目录则为真
· -f文件名:如果文件存在且为普通文件则为真
· -c文件名:如果文件存在且为字符型特殊文件则为真
· -b文件名:如果文件存在且为块特殊文件则为真
2.if条件语句
if 条件命令串
then
条件为真时的命令串
else
条件为假时的命令串
fi
3.for循环
for 变量名
[in 数值列表]
do
若干个命令行
done
变量名可以使用户选择的任何字符串,如果变量名是var,则在in之后给出的数值将顺序替换循环命令列表中的$var。如果省略了in,则变量var的取值将是位置参数。对变量的每一个可能的赋值都将执行do和done之间的命令列表
4.while和until循环
while循环:
while
若干个命令行1
do
若干个命令行2
done
until循环:
until
若干个命令行1
do
若干个命令行2
done
5.case条件选择
格式为:
case string in
exp-1)
若干个命令行1
;;
exp-2)
若干个命令行
;;
*)
其他命令行
esac
shell通过计算字符串string的值,将其结果依次和表达式exp-1、exp-2等进行比较,知道找到一个匹配的表达式为止,如果找到了匹配项则执行它下面的命令,知道遇到一对分号(;;)为止
6.无条件控制语句break和continue
break用于立即终止当前循环的执行,而continue用于不执行中后面的语句而立即开始下一个循环的执行,这两个语句只有放在do和done之间时才有效
7.函数定义的基本格式:
functionname
{
若干命令行
}
调用函数的格式为:
functionname param1 param2......