Lou*_*Lou 1 bash shell-script syntax
我知道这!用于否定 Bash 中的 if 条件,但我刚刚看到采用以下格式的代码:
if ! [[ CONDITION ]]; then
SOMETHING
fi
Run Code Online (Sandbox Code Playgroud)
这种格式和下面的格式有区别吗?
if [[ ! CONDITION ]]; then
SOMETHING
fi
Run Code Online (Sandbox Code Playgroud)
我试过谷歌,但还没有找到任何关于以前的语法。
对于单一条件,它们都是相同的:
$ if [[ ! 1 = 1 ]]; then echo true; else echo false; fi
false
$ if ! [[ 1 = 1 ]]; then echo true; else echo false; fi
false
Run Code Online (Sandbox Code Playgroud)
测试多个条件时会出现差异:
$ if [[ ! 1 = 2 || 2 = 2 ]]; then echo true; else echo false; fi
true
$ if ! [[ 1 = 2 || 2 = 2 ]]; then echo true; else echo false; fi
false
Run Code Online (Sandbox Code Playgroud)
所以外部否定对结果有更多的优先权。
当然,您可以对整个条件应用内部否定,因此在这种情况下,您将更喜欢使用外部否定:
$ if [[ ! ( 1 = 2 || 2 = 2 ) ]]; then echo true; else echo false; fi
false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |