-eq
いつvs =
vsを使用する必要がありますか?==
例えば
[[ $num -eq 0 ]]
[[ $num = 'zzz' ]]
-eq
-ne
数字と文字列を表すために(andなど)を使用するパターンを観察しました=
。これには理由がありますか?いつ使うべきですか?==
ベストアンサー1
これがオペランドの定義だからです。 ~からPOSIXテスト文書、OPERANDSセクション:
s1 = s2
文字列 s1 と s2 が等しい場合は真、そうでなければ偽です。
...
n1-eq n2
整数 n1 と n2 が代数的に等しい場合は真、そうでなければ偽です。
==
bash
POSIXで定義されたものではなく、から派生した拡張ですksh
。==
移植性を望むときは使用しないでください。 ~からbash ドキュメント - Bash 条件式:
文字列1 ==文字列2
文字列1 = 文字列2
文字列が等しい場合は真です。POSIX 準拠を保証するには、テストコマンドで '=' を使用する必要があります。