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