こんにちは、さるまりんです。
今日はシェルの小ネタです。
タイトルの通りなのですが、シェルでシングルクオートで囲われた文字列の中でシングルクオート文字を使うときはどのように書いたらいいでしょうか?
echo 'abc's'
こうすると
$ echo 'abc's'
quote> '
abcs
文字列が終了していないのでこんな風になります。
abc'sと表示したいだけなのです。
ではどうするのか。
'"'"'"でシングルクオート一つにすることができます。
$ echo 'abc'"'"'s'
abc's
できました。
これはどうなっているか簡単に書くと
一つ目の'で最初の'ではじまった文字列を終わらせます。
"で二つ目の文字列を開始、二つ目の'は実際に表示されているシングルクオートです。
で、二つ目の"で"で始まった文字列を終わらせます。
三つ目の'で新たにシングルクオートの文字列を開始しています。
真ん中の'だけ"'"でダブルクオートの文字列なのでエスケープとはちょっと違うのかな。
シンプルにダブルクオートでやれば
$ echo "abc's"
abc's
こんな風に簡単なのですが、シングルクオートでなければいけないケースもあると思うので、覚えていると便利かもです。
読んでくださってありがとうございました。
それではまた!