105.1基礎
現在のPATHに含まれる標準ディレクトリを維持する。
ユーザーの$HOME/binを検索順の末尾へ追加し、子プロセスにも渡す。
適切なコマンドはどれか。
× 不正解
export PATH="$PATH:$HOME/bin"は既存値を展開し、コロン区切りで末尾へ追加する。先頭へ置く場合は信頼できるディレクトリだけにする。
詳細解説
正しい
export PATH="$PATH:$HOME/bin"既存PATHを展開し、$HOME/binを末尾へ加えてexportする。
正しい。二重引用内で両変数を展開し、コロンを挟んで既存検索先の末尾へ新しいディレクトリを加える。
誤り
export PATH="$HOME/bin"既存検索先をすべて失う。
誤り。/usr/bin等が消え、通常コマンドを名前だけで起動できなくなる可能性がある。
誤り
export PATH='$PATH:$HOME/bin'単一引用により変数が展開されず、文字列$PATH等が入る。
誤り。単一引用は$を展開しないため、実ディレクトリではない文字列がPATH要素になる。
誤り
PATH+="$HOME/bin"区切りのコロンがなく連結され、export属性も新規には保証しない。
誤り。元末尾と$HOME/binの間にコロンがなく1つの不正なパスになり、未export変数なら継承も保証しない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -c 'HOME=/tmp/demo-home; PATH=/usr/bin:/bin; export PATH="$PATH:$HOME/bin"; printf "%s\n" "$PATH"'期待される結果
/usr/bin:/bin:/tmp/demo-home/bin理解のポイント
- コロンが区切り
- 既存$PATHを保持
- exportで子へ継承
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時シェル
基礎のおさらい
検索順
PATHは左から検索されるため、追加位置によって同名コマンドの優先順位が変わる。
空要素
先頭・末尾や連続するコロンは現在ディレクトリを意味し得るため、安全上避ける。
問題IDKP-105-608
確認環境GNU Bash 5.2 / 一時シェル
最終技術確認2026-08-13
誤り・権利侵害を報告