ぼろぼろ平原

困った

エスケープ文字を解釈してくれないコマンドに\nや\tを渡す方法

echoコマンドは-eオプションを付けないと、\n\tのようなエスケープ文字が有効にならない。

### -e なし
$ echo 'foo\nbar\tbaz'
foo\nbar\tbaz

### -e あり
$ echo -e 'foo\nbar\tbaz'
foo
bar baz

そのようなコマンドにエスケープ文字を渡したいときは、BashANSI-C Quotingという機能を使う。

https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html

www.gnu.org

### $'string' という形式で文字列を渡す
$ echo $'foo\nbar\tbaz'
foo
bar baz