结构化命令允许你改变shell脚本的正常执行流。
使用if-then语句
bash shell的if语句会运行if行定义的那个命令。如果该命令行的退出码是0(该命令执行成功),位于then部分的命令就会被执行。如果该命令的退出状态不是0,那么then部分的命令就不会被执行,bash shell会继续执行脚本的下一个命令。
if-then语句不能测试跟命令退出码无关的条件
#!/bin/bash
if date
then
echo "it worked"
fi
如果if语句后的命令运行出错,错误消息依然会显示再脚本的输出中。
在then部分,可以用多个命令。
if-then-else语句
当if语句的命令返回退出状态吗是0时,then的部分中的命令会被执行,跟普通的if-then语句一样。当if语句中的命令返回非0退出状态码时,bash shell会执行else部分中的命令。else部分也可包含多条命令。fi语句说明else部分结束了。
嵌套if
if command1
then
commands
elif command2
then
commands
elif command3
then
comands
fi
test命令
test命令提供了在if