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