SOFTELメモ

</> 技術者募集

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

問題

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

答え

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

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

例)123’456′ と出力したい

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

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

別の例。

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

関連するメモ

コメント