同僚は最近、コードレビューで、次のような構成では構成[[ ]]
が優先されると主張しました。[ ]
if [ "`id -nu`" = "$someuser" ] ; then
echo "I love you madly, $someuser"
fi
彼は論理的根拠を提供できなかった。ありますか?
[[
驚きが少なく、一般的に安全に使用できます。しかし、それは移植性がありません-POSIXはそれが何をするかを指定せず、いくつかのシェルだけがそれをサポートします(bashの他に、kshもそれをサポートすると聞きました)。たとえば、あなたはすることができます
[[ -e $b ]]
ファイルが存在するかどうかをテストします。しかし[
、を使用$b
すると、引数を分割して次のように展開するため、引用する必要が"a*"
あり[[
ます(文字通りどこにありますか)。これは[
、外部プログラムになる方法と関係があり、他のすべてのプログラムと同じように通常どおり引数を受け取ります(ただし、組み込みプログラムにすることもできますが、この特別な処理はまだありません)。
[[
また=~
、Cのような言語で知られているような演算子とともに、正規表現のマッチングなど、他の優れた機能もいくつかあります。:ここでは良いページはそれについてですテストの違いは何ですか、[
と[[
?およびBashテスト
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加