前面文章介绍了一些Shell脚本的基础知识,也了解了怎样构建一个shell脚本文件,让shell脚本执行一些基础的指令,但都是从上到下依次执行的。在实际shell编程中,会遇到很多情况需要判断条件,按不同条件去执行不同的命令。本文注意介绍shell编程中的一些结构化命令条件语句等内容:
if-then
语句是最基本的结构化命令,其格式如下:if command then commands fi
首先,
if
语句会运行if
之后的命令;
然后,判断该命令的退出状态码($?)是否为0,为0则执行then
部分的命令,不为0则不执行;
最后,fi
语句用来表示if-then
语句到此结束。
在有些脚本中,你可能看到过 if-then 语句的另一种形式:
if command; then commands fi
通过把分号(
;
)放在待求值的命令尾部,可以将 then 语句写在同一行,这样看起来更像其他编程语言中的 if-then 语句。
在
if-then
语句中,不管命令是否成功执行,都只有一种选择。下面介绍这个命令在命令执行成功后,会执行一些命令,不成功则可以执行其他命令,这就是if-then-else
语句。if-then-else
语句格式如下:if command then commands else commands fi
首先,
if
语句会运行if
之后的命令command
;
然后,判断该命令的退出状态码($?)是否为0,为0则执行then
部分的命令,不为0则执行else
部分的命令;
最后,fi
语句用来表示if-then
语句到此结束。
if-then-else 语句
也只是提供了两个选择,如果想要判断更多的情况,可以选择if-then-elif
语句。if-then-elif
语句格式如下:if command then commands elif command then commands fi
首先,
if
语句会运行if
之后的命令command
;
然后,判断该命令的退出状态码($?)是否为0,为0则执行then
部分的命令;
不为0则继续运行elif
的命令command
;
继续判断该命令退出状态码是否为0,为0则执行then
部分的命令;
最后,fi
语句用来表示if-then
语句到此结束。
可以继续将多个 elif 语句串起来,形成一个更大的 if-then-elif 嵌套组合:
if command1 then command set 1 elif command2 then command set 2 elif command3 then command set 3 elif command4 then command set 4 fi
有时需要在脚本中检查多种条件。对此,可以使用嵌套的 if-then 语句。嵌套的 if 语句是指在 if 语句的命令部分又使用 if 语句,基本格式如下:
- 在 then 命令部分嵌套
if command then commands if command then commands fi fi
- 在 else 命令部分嵌套
if command then commands else commands if command then commands fi fi
如果文章有帮助的话,点赞、收藏⭐,支持一波,谢谢