最初の選択

最初の選択

bashに違いがありますか、それともステートメントの否定に対して好ましい使用法がありますか?

if ! [[ -z "${var}" ]]; then
  do_something
fi

比較的

if [[ ! -z "${var}" ]]; then
  do_something
fi

ベストアンサー1

! [[ expression ]]

テスト全体がfalseを返す場合はtrue

[[ ! expression ]]

単一の式が false を返す場合、値は true です。


テストは複合式である可能性があるため、これは非常に異なる場合があります。たとえば、

$ [[ ! 0 -eq 1 || 1 -eq 1 ]] && echo yes || echo no
yes
$ ! [[ 0 -eq 1 || 1 -eq 1 ]] && echo yes || echo no
no

個人的には、該当する場合はテスト構成内で否定を使用することを好みますが、意図に応じて外部でも完全に問題ありません。

おすすめ記事