1.06.1基礎
既存PATHの検索先を維持する。
$HOME/binを検索順の末尾へ追加し、子プロセスにも渡す。
適切な記述はどれか。
× 不正解
PATHはコロン区切りのディレクトリ一覧である。既存値を展開して末尾へ追加し、exportで子プロセスへ渡す。
詳細解説
正しい
export PATH="$PATH:$HOME/bin"既存値を保ち、コロン区切りで末尾へ追加してexportする。
二重引用内で既存PATHとHOMEを展開し、コロンを挟んで$HOME/binを末尾へ加える。exportにより子プロセスも新しい検索一覧を受け取る。
誤り
export PATH="$HOME/bin"既存の標準検索先を失う。
PATHを$HOME/binだけで置き換えるため、/usr/binなど既存の標準検索先を失う。多くの通常コマンドを名前だけで実行できなくなる。
誤り
export PATH='$PATH:$HOME/bin'単一引用により変数名が文字列のままPATHへ入る。
単一引用は$を展開しない。PATHには実ディレクトリではなく$PATHや$HOMEという文字を含む要素が設定される。
誤り
PATH+="$HOME/bin"区切りのコロンなしで連結し、検索要素として分離されない。
+=は文字列をそのまま連結するため、既存末尾と$HOME/binの間にコロンがない。2つのディレクトリが1つの不正な検索要素になる。
実際に確かめる
一時的な検証環境で実行できる例です。
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を保持
- 末尾追加は優先度が低い
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時シェル
- 空のPATH要素は現在ディレクトリを意味し得るため、意図しない先頭・末尾コロンを避ける。
基礎のおさらい
コロン区切り
Unix系のPATHではコロンが要素の区切りで、各ディレクトリを左から順に検索する。
末尾追加
末尾へ追加したディレクトリは既存要素より後に検索され、同名コマンドでは既存側が優先される。
問題IDKL-102-911
確認環境GNU Bash 5.2 / 一時シェル
最終技術確認2026-08-13
誤り・権利侵害を報告