次のスクリプトがあります。
$ cat foo.sh
NAME=bar
while true
do
echo "My name is $NAME"
done
私が理解したのは、/proc/pid/environにはプロセスで使用される環境変数が含まれています。ところで確認してみると、NAME
/proc//environで定義された変数は見つかりませんでした。
$ sh foo.sh &
$ strings /proc/$(pidof sh)/environ |grep NAME
HOSTNAME=localhost
LOGNAME=root
/proc/pid/environの私の理解が間違っているようです。そのファイルにシステム変数のみが含まれており、プロセスで内部的に使用される変数が含まれていないことを確認できますか?