linux 脚本 if else,Shell 脚本的 if-else/case 用法

if-then 语句

if commandthen commands fi

if-then 的语法和我们熟悉的其他高级编程语言有些差别,以C++为例,if 后面一般是条件判断表达式,通过表达式返回 True or False,来决定运行或者不运行接下来的命令,而Shell 中的 if-then 不同,if 语句会执行其后的命令,如果命令的退出码为 '0', 则执行 then 后的逻辑,如果退出码非 '0',则不执行。'fi' 表示 if-then 逻辑语句的结束。

if-then-else 语句if commandthen commandselse commandsfi

if-then-else 语句与if-then 相同,只是当if 后免得command 返回码为非 '0'时,会执行else 语句。

if-then-elif-then 语句

if command1then commandselif command2then commandselsethen commandsfi

原理其实和if-then-else没有区别,只是增加了逻辑分支的判断匹配。

test 命令test condition #test命令的格式

if-then 系列的命令中,if语句不能直接判断condition,而只能通过命令的返回码来作为条件判断依据,这有些时候并不便利,而且和我们熟悉的其他高级语言中的 if-else 语法不同。test 命令可以帮助我们转变shell 中的 if-then 结构语法为我们熟悉的语法。标准的结构是:

if test conditionthen commandsfi

bash shell中也提供了另一中方法来实现 test 相同的结果, 将condition 用方括号[]括起来if [ condition ] #方括号和condition之间要有空格then commandsfi

数值比较

158129514_1_20190405102843222

结合上面的内容,举一个例子说明:

158129514_2_20190405102843284

输出结果为:

the value of 10 is greater than value of 5value of 5 is equal to 5

注:bash shell中只能比较整数。

字符串比较

158129514_3_20190405102843393

因为字符串比较中,直接用了数学符号,而bash中会将大于号和小于号理解为重定向符号(之前的文章中有介绍重定向的含义和用法),所以做字符串比较是需要对大于号和小于号做转义,转义方式为在 '' 之前加 '\'. 直接上例子

158129514_4_20190405102843487输出结果为:'hello is less than world'

文件比较

158129514_5_20190405102843550

复合条件测试

[ condition1 ] && [ condition2 ] [ condition1 ] | | [ condition2 ]

条件判断高级用法

1.使用双圆括号, 且双圆括号内的 '' 号不需要转义。(( expression ))

双圆括号可以使用的表达式更多,如下

158129514_6_20190405102843643

2.使用双方括号, 注:并不是所有的bash都支持双方括号语法。

[[ expression ]]

case 命令

shell 中的 case 命令和其他高级语言的用法是一样的,都是为了解决 if-then-elif 太多的情况,可以是代码更清晰。case 语句的格式为case variable in pattern1 | pattern2) command1;;pattern3) command2;;*) default commands;;esac

直接上例子:

158129514_7_20190405102843768

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shell脚本中,if语句用于根据条件执行不同的操作。在if语句中,可以使用方括号([])或双方括号([[]])来进行条件判断。方括号([ ])是一条命令的形式,可以使用test命令或者其等价的下面是一个使用方括号的if语句的例子: ``` if [ 条件 ]; then 操作1 elif [ 条件 ]; then 操作2 else 操作3 fi ``` 而使用双方括号的if语句的语法类似,只是条件表达式的写法略有不同: ``` if [[ 条件 ]]; then 操作1 elif [[ 条件 ]]; then 操作2 else 操作3 fi ``` 在if语句中,可以使用比较运算符(如=, !=, -eq, -ne, -lt, -gt等)来进行条件判断,也可以使用逻辑运算符(如&&, ||)进行多个条件的组合判断。另外,还可以使用case语句来进行多分支的条件判断。总的来说,if语句是shell脚本中非常常用的条件控制结构,通过判断条件的真假来执行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [shell脚本中if用法](https://blog.csdn.net/shenwuwangc/article/details/122027626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Shell脚本之——条件语句if详解](https://blog.csdn.net/weixin_59325762/article/details/128436773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值