次のいずれかを実行できます:
<オール>\[abc\]_\[x\|y\]
のように) )または"[abc]_[x|y]"
のように) ).編集: 一部の人が指摘しているように、二重引用符は変数の展開やコマンドの置換を妨げません。したがって、正規表現に bash がそれらの 1 つとして解釈できるものが含まれている場合は、代わりに一重引用符を使用してください。
一重引用符を使用します。一重引用符は、どの文字も解釈されないようにします。
$ printf %s 'spaces are not interpreted away
neither are new lines
nor variable names $TESTING
nor square brackets [TESTING]
nor pipe characters or redirection symbols | > <
nor the semicolon ;
nor backslashes \a \b \c \\
the only thing that does not work is the single quote itself
'
一重引用符を埋め込む必要がある場合、2 つの解決策があります:
$ printf '%s\n' '[ Don'"'"'t worry, be happy! ]'
[ Don't worry, be happy! ]
$ printf '%s\n' '[ Don'\''t worry, be happy! ]'
[ Don't worry, be happy! ]
man bash
あたり
3 つの引用メカニズムがあります:エスケープ文字 、一重引用符、および二重引用符。
引用されていないバックスラッシュ (\ ) はエスケープ文字です .
文字を一重引用符で囲むと、引用符内の各文字のリテラル値が維持されます。バックスラッシュが前にある場合でも、単一引用符の間に単一引用符を使用することはできません。
文字を二重引用符で囲むと、$ を除く、引用符内のすべての文字のリテラル値が保持されます , ` , \ 、そして、履歴の拡張が有効になっている場合、! .文字 $ と ` 二重引用符内の特別な意味を保持します。バックスラッシュは、次の文字のいずれかが続く場合にのみ特別な意味を保持します:$ , ` 、" ,\ 、または <改行> .二重引用符は、その前にバックスラッシュを付けることにより、二重引用符で囲むことができます。有効にすると、! でない限り、履歴の展開が実行されます。 二重引用符で囲まれたものは、バックスラッシュを使用してエスケープされます。 ! の前のバックスラッシュ は削除されません。
特別なパラメータ * と @ 二重引用符で囲まれている場合は特別な意味があります (PARAMETERS を参照)
$' の形の単語 文字列 ' 特別扱いされます。単語は string に展開されます 、バックスラッシュでエスケープされた文字は、ANSI C 標準の指定に従って置き換えられます。バックスラッシュのエスケープシーケンスが存在する場合、次のようにデコードされます:
\a alert (bell) \b backspace \e \E an escape character \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \' single quote \" double quote \nnn the eight-bit character whose value is the octal value nnn (one to three digits) \xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) \uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits) \UHHHHHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits) \cx a control-x character
展開された結果は、ドル記号がなかったかのように単一引用符で囲まれます。
ドル記号が前に付いた二重引用符で囲まれた文字列 ($" 文字列 " ) は、現在のロケールに従って文字列を翻訳します。現在のロケールが C の場合 または POSIX 、ドル記号は無視されます。文字列が翻訳されて置換される場合、置換は二重引用符で囲まれます。