2016-10-03 8 views
0

/etc/profile.d/script.shでスクリプトを実行するときに問題が発生しました。私のマシンのいずれかに(これだけ、それがうまく実行されている他の人に)、私はSHELLが/ bin/bashの場合でもBASH_VERSIONは空です。

echo "$BASH_VERSION" >> /home/synek317/log 
echo "$SHELL"  >> /home/synek317/log 

を行い、結果はBASH_VERSIONが空であることですが、SHELL/bin/bashです。しかし、端末を起動してecho $BASH_VERSIONと入力すると、正しく入力されます。

私はこれをUbuntu 16.04.1で実行します。

/etc/profile.d/スクリプトの実行中にこの変数が空である理由がありますか?

+0

これはubuntuの新鮮なコピーです。ログイン中のみ空です。 – synek317

+0

私が見つけた唯一の場所は/ usr/sbin/lightdm-sessionですが、他のマシンと同じです。 – synek317

+3

'SHELL'は必ずしも現在のシェルの名前ではありません。それはあなたのログインシェルの名前です。 '/ etc/profile.d'のスクリプトは、'/bin/sh'によって実行されます。これはUbuntuの 'dash'です。 – chepner

答えて

1

定義上、/etc/profile.dのスクリプトはBashによって実行されません。

関連する問題