- shell流程控制和测试
if 、while、for、case、read 文件测试
-d:测试是否是为目录(Directory)
[ -d /mnt ]
-f:测试是否为文件(file)
[ -f ./file ]-e:测试目录或文件是否存在(Exist)
[ -e /mnt/file ]
-r:测试当前用户是否具有读取权限(Read)
[ -r ./file ]
-x:测试当前用户是否可执行(Excute)该文件
[ -x ./file ]
-L:测试是否为符号链接(Link)文件
[ -L ./file ]数字比较
格式:[ 整数1 操作符 整数2 ]
-eq:等于(Equal)
-nq:不等于(Not Equal)
-gt:大于(Greater than)
-lt:小与(less than)
-ge:大于等于(Greater Equal)
-le:小于等于(less Equal)字符串测试
1.格式:[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串3 ]:字符串3为空逻辑测试
1.-a 或者&&:
if [ -d ./mnt ] && [ 2 -eq 3 ]
then
echo "yes"
else
echo "not"
fi
&&:只有第一个为真时才判断第二个逻辑
2.-o或者||:只有第一个为假时,才判断第二个逻辑
3.!:逻辑非
- for流程控制
for i in a b c
do
…
done
in后面可以是任意命令输出结果expr 2+3
或
for((i=0;i<10;i++))
do
….
done - while控制
while [ 2 -eq 3]
do
...
done
3.case流程控制
case i in
1)
...
;;
2)
...
;;
*)
...
;;
esac