103.1標準
現在のシェルにはHOMEなど複数の環境変数がある。
継承環境を空にし、LAB_MODE=testだけを設定してprintenvを実行する。
適切なコマンドはどれか。
× 不正解
GNU env -iは空の環境からコマンドを開始する。後続のNAME=VALUEだけを明示的に追加できる。
詳細解説
誤り
env LAB_MODE=test printenvLAB_MODEは追加するが、現在の環境変数も継承する。
LAB_MODEを追加するが、HOMEやPATHなど既存環境も残る。
誤り
unset HOME; printenvHOMEしか削除せず、LAB_MODEも設定しない。
現在のシェルを変更し、他の環境変数は残るうえLAB_MODEもない。
正しい
env -i LAB_MODE=test printenv-iで継承環境を空にしてからLAB_MODEだけを加える。
正解。空の環境へLAB_MODEだけを設定してprintenvを実行する。
誤り
printenv -i LAB_MODE=test-iはここではenvのオプションであり、printenvの環境初期化指定ではない。
-iを使うコマンドと引数の位置が誤っている。
実際に確かめる
一時的な検証環境で実行できる例です。
env -i LAB_MODE=test printenv期待される結果
LAB_MODE=test理解のポイント
- env -i
- 環境変数の継承
- NAME=VALUE指定
確認時の注意
- 確認環境: GNU coreutils 9.x
- GNU envとprintenvを前提とする。
基礎のおさらい
再現性の高い実行
不要な環境差を排除したテストではenv -iが役立つ。
PATHなしの注意
env -i後のコマンド探索は実装の既定値に依存し得るため、厳密な処理では絶対パスを使う。
問題IDKP-103-026
確認環境GNU coreutils 9.x
最終技術確認2026-08-12
誤り・権利侵害を報告