105.1基礎
~/.profileを編集した。
新しい子シェルを起動せず、現在のBashプロセスへ内容を読み込む。
適切なコマンドはどれか。
× 不正解
source FILEまたは. FILEは現在のシェルでファイルを実行する。変数、関数、alias等の変更を現在環境へ反映できる。
詳細解説
正しい
source ~/.profile指定ファイルを現在のシェル環境で読み込み実行する。
正しい。sourceは現在のBashコンテキストでコマンドを評価し、変数や関数の変更をそのまま残す。
誤り
bash ~/.profile子Bashで実行するため、変数変更は親の現在シェルへ戻らない。
誤り。子Bashの環境だけが変わり、終了後に親の現在シェルへ設定は戻らない。
誤り
exec ~/.profile現在のシェルをファイルの実行で置き換えようとする。
誤り。execはプロセス置換で、設定を読み終えて現在シェルへ戻る用途ではない。
誤り
export ~/.profileexportは変数や関数の属性を扱い、設定ファイルを読み込まない。
誤り。exportは名前へ継承属性を付ける組込みで、パスの内容を実行しない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -c 'profile=$(mktemp); printf "DEMO_VALUE=loaded\n" > "$profile"; source "$profile"; printf "%s\n" "$DEMO_VALUE"; rm -f -- "$profile"'期待される結果
loaded理解のポイント
- sourceは現在シェル
- .は同義の組込み
- 子シェルとの違い
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時ファイル
基礎のおさらい
同義構文
. ~/.profileはPOSIXのdotコマンドで、Bashのsourceと同様に現在シェルへ読み込む。
安全性
sourceしたファイルのコマンドは現在権限で実行されるため、内容と所有権を確認する。
問題IDKP-105-604
確認環境GNU Bash 5.2 / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告