文件类型判断
test -e filename
:该文件名是否存在test -f filename
:该文件名是否存在且为文件(file)test -d filename
:该文件名是否存在且为目录(directory)
文件权限判断
test -r filename
:该文件名是否存在且有可读的权限test -w filename
:该文件名是否存在且有可写的权限test -x filename
:该文件名是否存在且有可执行的权限
两个整数之间的判定,例如 test n1 -eq n2
eq
数值相等。ne
数值不相等。gt
第一个数大于第二个数。lt
第一个数小于第二个数。le
第一个数小于等于第二个数。ge
第一个数大于等于第二个数。
if [ $a -lt "100" ]; then
echo $a
fi
字符串的判定,例如test -n str1
=
或==
两个字符串相等。!=
两个字符串不等。-z
空串。-n
非空串。
if [ $a == "abc" ]; then
echo $a
fi
if表达式
if 条件;then
命令
fi
或
if 条件;then
命令1
else
命令2
fi
或
if 条件1;then
命令1
elif 条件2;then
命令2
else
命令3
fi
for循环
for var in 1 2 3 4 5
do
echo ${var}
done
或
num=10
s=0
for((i=0;i<${num};i=i+1))
do
s=$((${s}+${i}))
done
echo ${s}
while循环
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
无限循环
while :
do
command
done
或
while true
do
command
done
或
for (( ; ; ))
逐行读文件
cat ${FILE} | while read line
do
echo ${line}
done