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/
スクリプトの実行中にこの変数が空である理由がありますか?
これはubuntuの新鮮なコピーです。ログイン中のみ空です。 – synek317
私が見つけた唯一の場所は/ usr/sbin/lightdm-sessionですが、他のマシンと同じです。 – synek317
'SHELL'は必ずしも現在のシェルの名前ではありません。それはあなたのログインシェルの名前です。 '/ etc/profile.d'のスクリプトは、'/bin/sh'によって実行されます。これはUbuntuの 'dash'です。 – chepner