语法:
if commands; then
commands
[elif commands; then
commands...]
[else
commands]
fi
命令执行之后,会返回0~255整数,0表示成功,其他表示失败。
echo $?
有趣的命令,true,总是返回0,表示成功,false总是返回1,表示失败。
如果if后面跟着一串命令,那么以最后一个命令为准,例如:
if false; true; then echo "It's true."; fi
测试
两种形式:
test expression // 如果expression是true,test返回0,如果expression是false,test返回1
[ expression ]
1,文件表达式
2,字符串
注:>和<在使用的时候,必须加上引号或者反斜线,否则shell会当做重定向符号解读。
3,整数
最新的测试方法
[[ expression ]]
The [[ ]]命令类似于test,但是支持新的运算,string1 =~ regex。如果string1被扩展的正则表达式regex匹配上,返回true。
[[ ]] 还支持模式匹配,类似于路径扩展,例如:
if [[ $FILE == foo.* ]]; then
(( ))为整数而设计,用于执行算术真测试。例如:
if ((1)); then echo "It is true."; fi
if [ "$INT" -eq 0 ]; 等价 if ((INT == 0));
if [ "$INT" -lt 0 ]; 等价 if ((INT < 0));
if [ $((INT % 2)) -eq 0 ]; 等价于 if (( ((INT % 2)) == 0));
test测试使用的所有表达式和操作符都被shell当做命令行参数。
逻辑运算
控制操作符
&&(AND),||(OR),可以控制命令是否执行。
command1 && command2 只有command1成功才执行command2
command1 || command2 只有command1失败才执行command2