ハマったのでメモ。
bash&zshでシングルクォートのエスケープをする場合はちょっとしたテクニックが必要らしい。
ダメダメ例
ダメダメなエスケープ。
% echo 'tanaka\'s OS'
quote>
残念ながら'tanaka\'で終わってしまう。
回避する。
エスケープするにはちょっとしたテクが必要。
% echo 'tanaka'\''s OS'
tanaka's OS
'\''という意味不明なエスケープをする。
何故か?
分解してみる。
% echo 'tanaka' \' 's OS'
tanaka ' s OS
シングルクォートの中で\'というエスケープが出来ないので、一旦文字列を終了し、\'を入力。もう一度文字列を再開する。
まとめ
- シングルクォートのエスケープはかなり面倒。
- shも同様なので、シェルスクリプトを書く際は要注意。
- ダブルクオートなら"tanaka's OS"だけで良い。
- zshならもっとうまい回避法がありそうな気がする。