オリジナル問題 LinuCレベル1試験 問題 問21
GNUとUnixのコマンド/コマンドラインの操作bashにおけるシングルクォート(')とダブルクォート(")の違いとして適切なものはどれか。
出典:オリジナル問題 LinuCレベル1試験 問題 問21
- Aシングルクォートでは変数展開が行われ、ダブルクォートでは行われない
- Bどちらも同じ動作であり、引用符の種類による違いはない
- Cシングルクォートは中身をそのまま扱い、ダブルクォートは変数展開が行われる
- Dダブルクォートで囲むと、中のスペースが区切り文字として扱われる
正解:C
解説
シングルクォートで囲んだ部分は書かれたとおりの文字列として扱われ、$による変数展開もコマンド置換も行われません。ダブルクォートで囲んだ場合は、$変数や$(コマンド)は展開されますが、スペースによる単語の分割やワイルドカードの展開は抑止されます。値にスペースが含まれる変数を安全に渡したいときは、ダブルクォートで囲みます。
選択肢ごとの解説
- A誤り。変数展開が行われるのはダブルクォートの側です。
- B誤り。展開されるかどうかという明確な違いがあります。
- C正しい。シングルクォートは文字どおり、ダブルクォートは変数展開ありです。
- D誤り。ダブルクォートはむしろスペースによる分割を抑止します。