shell 使用双方括号

双方括号命令提供了针对字符串比较的高级特性。双方括号命令的格式如下:

[[ expression ]] 

双方括号里的expression使用了test命令中采用的标准字符串比较。但它提供了test命令未提供的另一个特性——模式匹配(pattern matching)。
在模式匹配中,可以定义一个正则表达式(将在第20章中详细讨论)来匹配字符串值。

$ cat test24.sh
#!/bin/bash 
# using pattern matching 
# 
if [[ $USER == r* ]] 
then 
 echo "Hello $USER" 
else 
 echo "Sorry, I do not know you" 
fi 
$ 
$ ./test24.sh
Hello rich 
$ 

在上面的脚本中,我们使用了双等号(==)。双等号将右边的字符串(r*)视为一个模式,并应用模式匹配规则。双方括号命令$USER环境变量进行匹配,看它是否以字母r开头。如果是的话,比较通过,shell会执行then部分的命令。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
shell脚本中,if语句用于进行条件判断。可以使用两种不同的语法形式,即使用括号"[]"或双方括号"[[]]"来表示条件。这两种形式在功能上有一些差异。 使用括号"[]"表示条件判断时,可以使用test命令或者方括号自身来进行条件判断。例如,可以使用以下语法形式进行条件判断: ``` if [ condition ] then # 执行某些操作 else # 执行其他操作 fi ``` 方括号内可以使用各种条件表达式,例如等于(-eq)、不等于(-ne)、大于(-gt)、小于(-lt)等等。可以通过逻辑运算符如与(-a)、或(-o)来组合多个条件。在这种形式中,注意要在方括号两侧留有空格。 使用双方括号"[[]]"表示条件判断时,可以使用更强大的条件表达式和逻辑运算符。例如,可以使用以下语法形式进行条件判断: ``` if [[ condition ]] then # 执行某些操作 else # 执行其他操作 fi ``` 双方括号内可以使用更丰富的条件表达式,包括字符串的模式匹配,使用"=~"操作符支持正则表达式等。双方括号还支持更直观的逻辑运算符如与"&&"和或"||"。 总之,根据需要选择适合的语法形式来进行条件判断。使用括号"[]"是通用且兼容性更好的方式,而双方括号"[[]]"则提供了更强大的条件表达式和逻辑运算符的支持。<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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值