类似一般的编程语言,shell中也有条件语句if。if语句有如下几种用法:
if ... fi if ... else ... fi if ... elif ... else ... fi
注意,if(elif)条件后需要接then关键字,else不用。
if .. fi语句
仅有一个条件时,使用此语句。如:
#!/bin/bash name="Jim" read you if [ ${name} == ${you} ] then echo "Hello, Jim" fi运行脚本,如果你输入的是Jim,则会输出Hello, Jim
if ... else ... fi语句
有一个条件,并且分别对成立和不成立进行分支程序,则使用该语句。如:
#!/bin/bash name="Jim" read you if [ ${name} == ${you} ] then echo "Hello, Jim" else echo "Sorry, you are not Jim" fi运行脚本,如果输入的是Jim,则输出Hello, Jim,否则输出Sorry, you are not Jim
if ... elif ... else ... fi语句
如果要分多个条件,则可以使用此语句。如:
#!/bin/bash name="Jim" name1="John" read you if [ ${name} == ${you} ] then echo "Hello, ${name}" elif [ ${name1} == ${you} ] then echo "Hello, ${name1}" else echo "Sorry, you are not Jim or John" fi运行结果请自行体会,此处不再说明。
if相关语句也常与test命令结合使用,此时会用到前面的布尔表达式。如:
#!/bin/bash a=1 b=2 if test ${a} -eq ${b} then echo "a==b" else echo "a!=b" fi
运行结果:
a!=b