bashなどのshellでシングルクオートで囲まれた中でシングルクオートをエスケープする方法は残念ながらない。たとえば、
しかし、クオートを一旦閉じてから、シングルクオートをバックスラッシュでエスケープして入力しその後クオートを再開することで、そのようなことが実現できるようだ。
おまけ: シングルクオートを
ssh host02 'ssh host03 \'ls -l\' 'みたいなことはできない。
しかし、クオートを一旦閉じてから、シングルクオートをバックスラッシュでエスケープして入力しその後クオートを再開することで、そのようなことが実現できるようだ。
ssh host02 'ssh host03 '\''ls -l'\'' 'すなわち、
\'
ではなく、'\''
ということだ。おまけ: シングルクオートを
'\''
に置換するワンライナーruby -pe '$_.gsub!(/'\''/, %q('"'\\\\\\\\''"'))'