linux then多条命令,自学Linux Shell12.1-结构化命令if-then

12.1-结构化命令if-then

许多程序要求对shell脚本中的命令施加一些逻辑流程控制。有一类命令会根据条件使脚本跳过某些命令。这样的命令通常称为结构化命令(structured command)。

1. 基本的结构化if-then语句

结构化命令允许你改变程序执行的顺序。在bash shell中有不少结构化命令,基本的结构化命令就是if-then语句,if-then语句可以有两种格式

第一种:

1 ifcommand2 then3 commands4 fi

第二种:

1 ifcommand;then2 commands3 fi

bash shell的if语句会运行if后面的那个命令。

如果该命令的退出状态码是0 (该命令成功运行),位于then部分的命令就会被执行。

如果该命令的退出状态码是其他值,then部分的命令就不会被执行,bash shell会继续执行脚本中的下一个命令。

then的部分可以不止一条命令,会将这些命令当成一个块

如果该命令的退出状态码是0 (该命令成功运行),位于then部分的所有命令就会被执行。

如果该命令的退出状态码是其他值,then部分的所有命令就不会被执行,bash shell会继续执行脚本中的下一个命令。

fi语句用来表示if-then 语句到此结束。

举例1

2c2ea9d8f7cc4c0d0c6b6b79152057ca.png

举例2

f8573036b4da982ffac36b167a13fd17.png

举例3

9a2bf32375a4514ea460c2a43f2062e2.png

举例4

4f168b8f223ab543d4ef2a3cc86c08db.png

if语句行使用grep命令在/etc/passwd文件中查找某个用户名当前是否在系统上使用。如果有用户使用了那个登录名,脚本会显示一些文本信息并列出该用户HOME目录的bash文件。

但是,如果将testuser变量设置成一个系统上不存在的用户,则什么都不会显示。

2. if-then-else语句

1 ifcommand2 then3 command4 else

5 command6 fi

当if语句中的命令返回零退出状态码时,会执行then部分中的命令

当if语句中的命令返回非零退出状态码时,会执行else部分中的命令

else部分可以包含多条命令

举例1

6891caa851ed6847bbcc7cf6b9d15353.png

举例2

84c98def5b1d40dd19a1484431c0a11f.png

3. 嵌套 if

bash shell会依次执行if语句,只有第一个返回退出状态码0的语句中的then部分会被执行

elif语句中,紧跟其后的else语句属于elif代码块的

1 ifcommand2 then3 command4 elifcommand5 then6 command7 elifcommand8 then9 command10 else

11 command12 fi

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值