/etc/profile.d/とはなんのためのディレクトリなのか調べてみた
Chefでrbenv
をインストールするレシピを書いているのですが、とある参考記事に「bash
は/etc/profile.d/
以下に配置する」とありました。
「なぜここなの?」と思ったので、メモします。
/etc/profile.d/とは
/etc/profile.d/
の役割をいろいろ調べてみたところ、このディレクトリはアプリケーションごとのbashを配置するディレクトリらしいです。
たとえば、rbenv
をインストールするなら、そのbash
は/etc/profile.d/rbenv.sh
となる、ということらしいです。
まあ、慣例なのでその方が分かりやすいですよ〜、程度だと思います(たぶん)。
bashの実行順序
そもそもbash
はどう走査されるのか、という話です。
参考記事によると、bash
は以下の順序で実行されるようです。
/etc/profileの中身
上記1-5の2はどういうことよ、と思ったので確認してみました。
/etc/profile
の中には、以下のような記述があります。
なるほどな〜、という感じですね。
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done
そんな感じでした。 すっきりしました。 めでたしめでたし。