Bashで[対[[(単一括弧と二重括弧)をいつ使用する必要がありますか? [コピー]

Bashで[対[[(単一括弧と二重括弧)をいつ使用する必要がありますか? [コピー]

重複の可能性:
シングルまたはダブルカッコの使用 - bash

単一のステントはいつ使用するべきですか?[

いつ二重括弧を使用する必要がありますか?[[

どちらもPOSIXに準拠していますか?

ベストアンサー1

単一の角かっこは通常、外部コマンドで実装される伝統的な形式です。二重括弧は、以下のbash(およびkshとzsh)拡張です。いいえPOSIXで使用され、別のプロセスを使用せずに構文がよりきれいであるという利点があります(下記参照)。

構文の違いの1つは、リダイレクト演算子として読み取られないように、<and>演算子(注:標準POSIXではない)をエスケープしたり引用符で囲む必要がないことです。また、[文字列の1つが空である場合、またはハイフンで始まる場合は、いくつかのトリックが必要です。これがスクリプトがこのようなことをするのを見る理由です。[ "x$ASD" == xValue ]一方、bashでは簡単に使用できます[[ $ASD == Value ]]。 1つだけテストするPOSIX互換コマンドには、「x」トリックが必ずしも必要ではありません。この問題もっと学ぶ。

バッシュFAQ違いの詳細。これも返信を受けました。他のスタック交換サイトから。

おすすめ記事