[解決済み】Bashでは一重の角括弧[ ]よりも二重の角括弧[[ ]]の方が好ましいですか?
2022-03-17 18:10:19
質問
最近、同僚がコードレビューで
[[ ]]
よりも優先されます。
[ ]
のような構成で
if [ "`id -nu`" = "$someuser" ] ; then
echo "I love you madly, $someuser"
fi
根拠を示せなかった。あるんですか?
解決方法は?
[[
は驚きが少なく、一般的に安全に使うことができます。しかし、移植性はありません。POSIXでは何をするのか規定されていませんし、一部のシェルしかサポートしていません(bashの他にkshもサポートしているそうです)。例えば
[[ -e $b ]]
を使って、ファイルが存在するかどうかをテストします。しかし
[
を引用する必要があります。
$b
のように、引数を分割して展開してしまうからです。
"a*"
(ここで
[[
は文字通りに受け取ります)。それはまた、どのように
[
は外部プログラムでありながら、他のプログラムと同じように普通に引数を受け取ることができます(ただし、組み込みプログラムであることも可能ですが、その場合はこのような特別な扱いを受けることはありません)。
[[
を使った正規表現マッチングのような、他の素晴らしい機能もあります。
=~
と、C言語ライクな演算子で知られているような演算子で構成されています。これについては、以下のようなページがあります。
テストの違いは何ですか。
[
と
[[
?
と
Bashのテスト
関連
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] Bashで変数で定義された数値の範囲を反復処理するにはどうすればよいですか?
-
[解決済み] PHPの文字列で、シングルクオートとダブルクオートの違いは何ですか?
-
[解決済み] Bashでの単一行whileループの構文
-
[解決済み] Bashのシングルクォートとダブルクォートの違い
-
[解決済み] 二重括弧、片括弧、中括弧の使い方
-
[解決済み] SetをArrayに変換するには?
-
[解決済み] JavaScriptでインクリメント("++")とデクリメント("--")演算子を避ける理由は何ですか?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
-
[解決済み】Bashの一重角括弧と二重角括弧の違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SEDをワイルドカードで使用する場合
-
[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] Bashで部分文字列を抽出する
-
[解決済み] Bash における三項演算子 (?:)
-
[解決済み】Bashの[]と[[]の違いは何ですか?[重複しています]
-
[解決済み】Bashで変数が空かどうかを調べるには?
-
[解決済み】Dockerfileのif else条件で外部引数を指定した場合