Bashスクリプトでコマンド「-ne」は何を意味しますか?
たとえば、bashスクリプトの次の行は何をしますか?
[ $RESULT -ne 0 ]
これは、どこを見ればいいかわからない場合に検索するのが難しいものの1つです。
[
は実際にはコマンドであり、予想されるbashシェル構文の一部ではありません。たまたまBashの組み込みコマンドであるため、Bashのマニュアルに記載されています。
同じことを行う外部コマンドもあります。多くのシステムでは、GNU Coreutilsパッケージによって提供されます。
[
はtest
コマンドと同等ですが、[
は最後の引数として]
を必要とし、test
は必要ありません。
Bashドキュメントがシステムにインストールされていると仮定すると、info bash
と入力して'test'
または'['
(アポストロフィは検索の一部です)を検索すると、 [
コマンド。test
コマンドとも呼ばれます。 man bash
の代わりにinfo bash
を使用する場合は、^ *test
(行の先頭にある、いくつかのスペースに続く単語test
)を検索します。
「Bash条件式」を参照すると、数値の不等式演算子である-ne
の説明に進みます(「ne」は「等しくない」を表します)。これに対して、!=
はstring不等式演算子。
Webでbashのドキュメントを見つけることもできます。
test
および[
を含む)-ne
は "arg1OParg2 ")test
のPOSIXドキュメントtest
コマンドのofficial定義はPOSIX標準です(bash実装は、おそらくいくつかの拡張機能を使用して、合理的に十分に準拠する必要があります) 。
「等しくない」ので、この場合、$RESULT
は、ゼロに等しくないことがテストされます。
ただし、テストは数値で、アルファベット順ではありません:
n1 -ne n2 True if the integers n1 and n2 are not algebraically equal.
に比べ:
s1 != s2 True if the strings s1 and s2 are not identical.