Bashではなぜ'['や']'の周りに空白を入れる必要があるのですか?
2023-10-14 23:38:54
質問
Bashスクリプトを書こうとしたのですが、そのスクリプトは
if
ステートメントを使用しています。
if[$CHOICE -eq 1];
の前後にスペースを入れるまで、スクリプトはエラーを出していました。
[
の前と
]
の前に、以下のように記述します。
if [ $CHOICE -eq 1 ];
ここで質問なのですが、なぜBashでは角括弧の周りのスペースが重要なのでしょうか?
どのように解決するのですか?
を把握したら
[
は
コマンド
を実行すれば、すべてが明確になります!
[
は " の別の綴り方です。
test
となります。
help [
しかし
まさに
は同じです。
test
はより詳細なヘルプページを持っていることがわかります。チェック
help test
...詳しくはこちら
さらに注意してほしいのは、意図的に使っている
help test
を使用しており
man test
. それは
test
と
[
は、現在ではシェルの組み込みコマンドです。とは機能セットが異なる場合があります。
/bin/test
と
/bin/[
で説明されているコマンドは、coreutils の
man
ページで説明されているコマンドです。
関連
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashのシングルクォートとダブルクォートの違い
-
[解決済み] bashと正規表現を使って1行でプロセスを検索してkillする
-
[解決済み] ターミナルからmysqlを使用して、bashスクリプトで書かれたパスワードを警告メッセージとして表示しないようにする。
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】メタキャラクタの周りに空白が必要な場合があるのはなぜですか?
-
[解決済み】Bashで正規表現で文字列をマッチさせるには?
-
[解決済み] Ansibleで新しいユーザーとパスワードを作成する
-
[解決済み] 複数のbashスクリプトにまたがってpushd/popdのスタックを表示しない (quiet pushd/popd)
-
[解決済み] bashでファイルが存在するかどうかをテストするためのWhileループ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] 現在の日付と時刻を句読点を使わずに表示する
-
[解決済み] Cronジョブおよびランダム時間(指定時間内
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する
-
[解決済み] BASHでAWS S3 CLIを使用して標準出力にファイルをダンプするには?
-
[解決済み] Bash で +x を表示させずに設定する
-
[解決済み] bashでスクリプトの中で宣言された変数をリストアップする方法は?
-
[解決済み] WindowsのバッチとLinuxのBashの両方で実行できるスクリプトは?
-
[解決済み] 予期しないbashの終了時に作成された一時ファイルを削除する