似乎你可以写一个否定的条件
if ! [[ ... ]]; then
或
if [[ ! ... ]]; then
是否有理由选择一种或另一种方法,假设操作的语义相同? (即,显然,在第二个版本中,如果...
是复合语句,并且您不小心将表达式正确分组,那么您最终可能只会否定表达式的第一部分。)< / p>
答案 0 :(得分:8)
不,完全取决于您自己的偏好。下一个命令完全等效:
if [[ $x -ne $y ]]; then
if ! [[ $x -eq $y ]]; then
if [[ ! $x -eq $y ]]; then
您的偏好可能基于不同的条件:
if [[ $x -ne $y ]]; then
:简单比较,没有任何复杂性,如普通变量比较。if ! [[ $x -eq $y ]]; then
:假设您有一个复杂的if条件,可能是某个函数的结果,而不是$x -eq $y
。if [[ ! $x -eq $y ]]; then
:不必要,使用第一个或第二个,具体取决于您拥有的if条件类型。我永远不会用这个!