1.03.1基礎
現在のシェルでHOMEは定義済みである。
変数の値ではなく、文字列$HOMEをそのまま表示する。
適切なコマンドはどれか。
× 不正解
単一引用符内では$を含むほぼすべての文字がリテラルとして扱われ、変数展開されない。
詳細解説
誤り
echo $HOME未引用の$HOMEを変数の値へ展開する。
誤り。$HOMEは現在のホームディレクトリ値へ置き換わる。
誤り
echo "$HOME"二重引用符内でも変数展開を行う。
誤り。二重引用符は空白を保護するが、$によるパラメータ展開は許可する。
誤り
echo ${HOME}波括弧は変数名境界を明示するが、値への展開は行う。
誤り。波括弧はHOMEという名前を明確にするだけで、展開自体を止めない。
正しい
echo '$HOME'単一引用符が$の特別な意味を抑え、文字列をそのまま渡す。
正しい。単一引用符内では$が特別扱いされず、$HOMEという文字列がechoへ渡る。
実際に確かめる
一時的な検証環境で実行できる例です。
HOME=/example; echo '$HOME'期待される結果
$HOME理解のポイント
- single quoteは展開抑止
- double quoteは変数展開
- ${}も展開
確認時の注意
- 確認環境: Bash 5.x / echo builtin
基礎のおさらい
単一引用符
内部へ単一引用符そのものを直接含められない点を除き、文字を強く保護する。
二重引用符
$、バッククォート、特定のバックスラッシュなど一部の特殊処理を残す。
問題IDKL-101-437
確認環境Bash 5.x / echo builtin
最終技術確認2026-08-13
誤り・権利侵害を報告