gitのpre-commitスクリプトを書いている時に出てきた
echo -e $'〇〇'
のような記述が、参考記事によく出てきました。
$'
ってなんだ?ってなったので、ちょっと調べてみました。
コンソール上での実行結果
実行結果
$ echo -e 1行目\\n2行目\\n3行目
1行目
2行目
3行目
$ echo -e '1行目\\n2行目\\n3行目'
1行目\n2行目\n3行目
// これがよく見るパターンですかね
$ echo -e $'1行目\\n2行目\\n3行目'
1行目
2行目
3行目
$ echo -e "1行目\\n2行目\\n3行目"
1行目
2行目
3行目
$ echo -e $"1行目\\n2行目\\n3行目"
1行目
2行目
3行目
まとめ
シングルクォーテーション: エスケープせず、そのまま表示する。
それ以外は、エスケープする。
$'~'
はエスケープさせるために、$を前につけているんだね!!
ちなみに-e
はエスケープを有効にするオプション。
だけどシングルクォーテーションで囲った文字列はそのまま出力される。
よって$をつけるとことでエスケープするようにしているのですね。
文字色とかを設定するために必要になるので。
文字色についてはまた別途実行結果をまとめたいと思います。
まとめないと何が何やらわからんので。。。