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