コマンドは期待どおりに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"')'
望むより: