/etc/profileの勉強

Linuxを知っていると思っていた自分がいきなり/etc/profileを読んで読めなかった。。。

 

pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}

 

このpathmunge関数の意味。

 

①これはまずecho ${PATH}を実行しています。

case ":${PATH}:" in

 

②次にそのpathの中身を確認しており

*:"$1":*)

 

③該当するパスが含まれている場合は、環境変数のPATHに追加しませんという意味です。

 

簡単にいうと

こういうスクリプトを作って

pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}


pathmunge /root/bin
(CentOS6のrootユーザではデフォルトで/root/binは追加されています。)

 

実行すると

sh -xつけて

何もパスを追加しませんってことです。