web-dev-qa-db-ja.com

bashで「-ne」はどういう意味ですか?

Bashスクリプトでコマンド「-ne」は何を意味しますか?

たとえば、bashスクリプトの次の行は何をしますか?

[ $RESULT -ne 0 ] 
42
ZenBalance

これは、どこを見ればいいかわからない場合に検索するのが難しいものの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コマンドのofficial定義はPOSIX標準です(bash実装は、おそらくいくつかの拡張機能を使用して、合理的に十分に準拠する必要があります) 。

64
Keith Thompson

「等しくない」ので、この場合、$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.
34
Omegaman