1 if 结构
1.1 if then
bash 中会运行if后面的命令,如果该命令的退出码为0(运行成功),then后面的语句才会继续进行
if 后面要加个空格
例子:
testuser=spider
if grep $testuser /etc/passwd
then
echo -n "the bash file for user $testuser is "
ls -a /home/$testuser/.b*
fi
#如果then放在if这行 则需要在if后面加分号
if grep $testuser /etc/passwd; then
echo -n "the bash file for user $testuser is "
ls -a /home/$testuser/.b*
fi
1.2 if then else 若if后面的命令没有运行成功,运行else后面的语句
1.3 嵌套if
else if 的简写是 elif
if xx ; then
xxx
elif xxx ;then
xxx
else
xxx
fi
2 test命令
test有两种写法
if test condition;then
xxx
fi
if [ condition ] ;then
xxx
fi
注意方括号内侧要留个空格
if test 1 -eq 2;then
echo "1==2"
else
echo "1!=2"
fi
if [ 1 -eq 2 ];then
echo "1==2"
else
echo "1!=2"
fi
2.1 数值比较
var=5
if [ $var -eq 5 ];then
echo "$var equals 5"
else
echo "$var not equals 5"
fi
和
var=5
if [ $var -eq "5" ];then
echo "$var equals 5"
else
echo "$var not equals 5"
fi
结果是一样的 都是equals
这说明test将字符串转化为整数了.遇到无法转化的,如"5i"等,就会报错