看来你可以将否定条件写成
if ! [[ ... ]]; then
或
if [[ ! ... ]]; then
假设操作的语义相同,是否有理由选择一种或另一种方法? (即,很明显,在第二个版本中,如果 ...
是一个复合语句,并且您没有小心地将表达式正确分组,那么您最终可能只会否定表达式的第一部分.)
最佳答案
不,这完全取决于您自己的喜好。接下来的命令是完全等价的:
if [[ $x -ne $y ]]; then
if ! [[ $x -eq $y ]]; then
if [[ ! $x -eq $y ]]; then
您的偏好可能基于不同的 if 条件:
if [[ $x -ne $y ]]; then
:简单的比较,不像普通的变量比较那样复杂。如果! [[ $x -eq $y ]]; then
:假设您有一个复杂的 if 条件,它可能是某个函数而不是$x -eq $y
的结果。如果 [[ ! $x -eq $y ]]; then
:不需要,使用 first 或 second,具体取决于您拥有的 if 条件类型。我永远不会使用这个!
关于bash - Bash 条件句中感叹号是在括号内还是在括号外有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043257/