4

このstackoverflowの質問への回答Linuxシェルで、複数行の文字列の各行を処理するにはどうすればよいですか?$'\n'これは「すべてのシェルで使用できるわけではない」という特別な構文であると述べています。

構文はどういう意味ですか?

ありがとうございました。

4

1 に答える 1

10

マニュアルページのQUOTINGセクションを参照してください。bash

   Words of the form $'string' are treated specially.  The word  expands  to
   string,  with  backslash-escaped  characters replaced as specified by the
   ANSI C standard.  Backslash escape sequences, if present, are decoded  as
   follows:

...
              \n     new line
...

   The  expanded result is single-quoted, as if the dollar sign had not been
   present.

この構文は、標準のUnixBourneシェルの一部ではありません。他のシェルがそれをサポートしているかどうかを確認するために周りを見たことがありませんが、それはbashに固有である可能性があります。

于 2012-12-18T03:38:05.050 に答える