看起来您可以将否定条件写成
if ! [[ ... ]]; then
或者if [[ ! ... ]]; then
假设操作的语义相同,那么选择一种方法还是另一种方法有理由吗? (也就是说,显然,在第二个版本中,如果 ...
是一个复合语句,并且你没有仔细地对表达式进行分组,则可能只会否定表达式的第一部分。)
看起来您可以将否定条件写成
if ! [[ ... ]]; then
或者if [[ ! ... ]]; then
假设操作的语义相同,那么选择一种方法还是另一种方法有理由吗? (也就是说,显然,在第二个版本中,如果 ...
是一个复合语句,并且你没有仔细地对表达式进行分组,则可能只会否定表达式的第一部分。)
不,这完全取决于您自己的喜好。下一个命令是完全等效的:
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 条件类型。我从不使用这个!!
应该在单括号内。我不确定是否有共识。 - Josh