ターミナルのエコブラケット記号

ターミナルのエコブラケット記号

コマンドは期待どおりにecho Hello World印刷されますが、Hello Worldエラーecho Hello (World)が発生しますsyntax error near unexpected token `('

()、、のような{}括弧はマーカーであり、特別な意味があることを知っていますが、スクリプトでこれをどのように「[]エスケープ」しますか?bash

ベストアンサー1

(これは、実際には角かっこの単純な合計を除いて、語彙アナライザの意味のトークンではありません)

{特に、}参照はまったく必要ありません。

$ echo {Hello World}
{Hello World}

{(または}コマンドの最初の単語として使用しない限り、キーワードとして解釈されます。または、単一の{a,b}単語内にカンマまたはダブルポイントを使用すると、中括弧の拡張です。)

[]また、グローバル文字でのみ特殊であり、一致するファイル名がない場合、デフォルトの動作は単語をそのままにすることです。

ただし、とにかくそれを終了するには、通常、一重引用符または二重引用符で引用します。

echo "(foo bar)"
echo '(foo bar)'

または少し疲れていますが、関連する文字を1つずつエスケープしてください。

echo \(foo\ bar\)

または希望の組み合わせ:

echo \(fo"o bar"')'

望むより:

おすすめ記事