SOFTELメモ Developer's blog

【bash】シングルクォートのエスケープ

2017/05/20 linux

問題

シェルスクリプトで、シングルクォーテーションの中でシングルクォーテーションを使うために、シングルクォーテーションをエスケープしたいです。

答え

シングルクォーテーションの中でシングルクォーテーションのエスケープはできないらしく、

シングルクォーテーションで囲んだ状態を終了することが必要とのこと。

例)123'456' と出力したい

(ダメ)
$ echo '123\'456\''
>
(OK)
$ echo '123'\''456'\'
123'456'

echo '123' と、単発の \' と、'456' と、単発の \' を出力すると考える。

別の例。

(ダメ)
$ mysql -e 'select \'abc\';'
(OK)
$ mysql -e 'select '\''abc'\'';'

関連するメモ

コメント