、あなたが行うことができます:
if ! (((a == b) && (a == c)))
を文字列の比較のために:bashで
if ! [[ "$a" == "$b" && "$a" == "$c" ]]
、二重括弧は、算術コンテキストを設定する(ドル記号がされましたほとんどの場合、オプションで、比較のために使用されます(また、for ((i=0; i<=10; i++))
および$(())
算術拡張で使用されます)。シーケンスを、作成する単一のカッコのセットから区別するために使用しますサブシェル。それがアクションを行い、常に真なので
これは、例えば、コマンドtrue
を実行し、:
if (true); then echo hi; fi
これはサブシェルが作成されたことを除いて
if true; then echo hi; fi
と同じです。ただし、if ((true))
は "true"という名前の変数の値をテストします。
ドル記号を含める場合は、 "$ true"が変数であることは明白ですが、括弧が1つの(または括弧なしの)動作は変更されます(if
)。内容が上がらない場合
if ($true)
又は
if $true
はコマンドとして変数の内容を実行し、コマンドの終了値に基づく条件付きアクションを実行(または「コマンドが見つかりません」というメッセージを与えます有効なコマンドではありません)。
if (($true))
は、前述のようにif ((true))
と同じことを行います。
Thanks Dennis。これは正確に私が探していた構文のタイプです。 –
+1ダブルパサンシェの説明です!クリーンアップのために私の他のコメントを削除する。 – eckes