誰にも見えないブログ

雑なメモ。まとまってない文章等

Shell scriptの文字列括りにシングルクォート「'」とダブルクォート「"」を使ったときの違い

引用符はエスケープできる文字列に違いが出る...がいつもどの文字がエスケープ(できる/できない)んだっけ?と忘れるのでメモ

  • シングルクォート:シングルクォート以外の全てのメタ文字をエスケープします
  • ダブルクォート:$、バッククォート、\以外をのメタ文字をエスケープする

以下がShell Scriptのメタ文字です

; & ( ) | < > ? * [ ] $ ` " ' {} 改行 タブ スペース

例:

>ls $test
'$test'
>ls "$test"
ls: cannot access '': No such file or directory
>ls '$test'
'$test'

他にもShell Scriptではバックスラッシュをエスケープ対象の文字の前につけることでエスケープすることもできます。

参考

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界