![Bashで[対[[(単一括弧と二重括弧)をいつ使用する必要がありますか? [コピー]](https://linux33.com/image/25887/Bash%E3%81%A7%5B%E5%AF%BE%5B%5B%EF%BC%88%E5%8D%98%E4%B8%80%E6%8B%AC%E5%BC%A7%E3%81%A8%E4%BA%8C%E9%87%8D%E6%8B%AC%E5%BC%A7%EF%BC%89%E3%82%92%E3%81%84%E3%81%A4%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
答え1
単一の角かっこは通常、外部コマンドで実装される伝統的な形式です。二重括弧は、以下のbash(およびkshとzsh)拡張です。いいえPOSIXで使用され、別のプロセスを使用せずに構文がよりきれいであるという利点があります(下記参照)。
構文の違いの1つは、リダイレクト演算子として読み取られないように、<
and>
演算子(注:標準POSIXではない)をエスケープしたり引用符で囲む必要がないことです。また、[
文字列の1つが空である場合、またはハイフンで始まる場合は、いくつかのトリックが必要です。これがスクリプトがこのようなことをするのを見る理由です。[ "x$ASD" == xValue ]
一方、bashでは簡単に使用できます[[ $ASD == Value ]]
。 1つだけテストするPOSIX互換コマンドには、「x」トリックが必ずしも必要ではありません。この問題もっと学ぶ。