我想在bash脚本中做一些像下面这样的事情.我如何在bash语法中实现.
@H_301_6@
对于数值比较,您可以做:
if !((a==b) && (a==c)) then do something end if
if ! (( (a == b) && (a == c) ))
对于字符串比较:
if ! [[ "$a" == "$b" && "$a" == "$c" ]]
在Bash中,双括号设置了一个算术上下文(其中美元符号大多是可选的),用于比较(也用于((i = 0; i <= 10; i))和$(( ))算术扩展),并用于区分序列与创建子shell的单个括号集合. 例如,这个执行命令是真的,因为它一直是真的,它的作用是:
if (true); then echo hi; fi
这是一样的
if true; then echo hi; fi
除了创建子shell.但是,如果((true))测试名为“true”的变量的值.
如果你要包括一个美元符号,那么“$true”将明确地是一个变量,但是如果单括号(或没有括号)的行为会改变.
if ($true)
要么
if $true
将作为命令执行变量的内容,并根据命令的退出值执行条件动作(如果内容不是有效命令,则给出“未找到命令”消息).
if (($true))
做如上所述的((真))相同的事情.