if-then是条件选择语句,及根据if后面的条件的执行情况在决定程序的执行流程。
但是linux中if只能根据条件命令的退出状态码来判断。如果命令成功执行,则状态退出码为0,执行then部分的代码。比如:
if pwd
then
echo the command is ok
fi
test可以提高if-then的条件判断能力,test命令中列出的条件如果成立,则test命令就会退出且返回退出状态码0。
如果test后面没有任何内容则返回非0,因此可以用来简单判断变量是否为空:
varible=""
if test $varible
then
echo 1
else
echo 2
输出的结果为:
2
另外一种方法为使用 方括号[ ],比如:
if [ $value -gt 5 ]
表示测试变量是否大于5。但是在脚本中用于字符串比较的>必须加上转移字符,否则会被识别为重定向符号。