クォーテーションの中でクォーテーションを使う

やりたいこと

 vim 'file 1.txt' 'file 2.txt'            # (1)
 
 alias v='vim 'file 1.txt' 'file 2.txt''  # (2)
  • (1)で file 1.txtfile 2.txt という二つのファイルを開いてvimで起動する
  • これを、(2)のようにaliasに設定したい
  • この場合は"(ダブルクォーテーション)でくくればよいが、'(シングルクォーテーション)でくくることを考える

方法

(1) '(シングルクォーテーション)をいったん終わらせて"(ダブルクォーテーション)で'を表現する

 alias v='vim '"'"'file 1.txt'"'"' '"'"'file 2.txt'"'"''
  • v='vim の後の 'file 1.txt '"'"'file 1.txt にする
  • 考え方としては最初の'でいったんシングルクォーテーションを終わらせて"で引用を開始し、'を入れたら、すぐに"で引用を終わらせて、さらにすぐに'で引用を開始してfile 1.txtを入れる、というもの

(2) '(シングルクォーテーション)をいったん終わらせて'をエスケープした'で表現する

 alias v='vim '\''file 1.txt'\'' '\''file 2.txt'\'''
  • すなわち ' '\'' で置き換える
  • 考え方は(1)と同じで、いったんシングルクォーテーションを終わらせて、エスケープした'(\')でシングルクォーテーションを表現し、すぐに'で引用を開始する

(3) Bashの$'...'を使う

 alias v=$'vim \'file 1.txt\' \'file 2.txt\''
  • '(シングルクォーテーション)くくる代わりに、 $'...' でくくる
  • $'...' の中の箇所の ' は単純に \' でエスケープするだけなので、この方法が一番簡単

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2022-02-15 (火) 03:37:46