目的
bash、zsh用の/etc/profile /etc/zshenv シェルスクリプト作成。
MacOSXの path_helper を使わずにPATH生成をすることが目的。
path_helperの問題点
mac版/usr/libexec/path_helperがシステムを異常動作に導く - Qiita
https://qiita.com/shiro_yone/items/a35f445e1c8d2293d123
他。
仕様
MacOSX 10.6 〜10.9.x。
他は後日別途記載
ホームディレクトリでテストプログラム作成。
テスト版
#!/usr/local/bin/bash (/etc/profile /etc/zshenvでは書かない)
# (c) shiro_yone 2020
# Mac用 /etc/prpfile 。
# path.d からPATHを取得し先頭側に文字列連結する。
# 動作保証はしない。筆者はいっさい責任を取らない。
# 上記の条件で非商用であれば自由に使って下さい。
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATHS_D=~/bin/etc/paths.d
unset FILES
unset line1
#echo $PWD # Debug
for files in `/usr/bin/find "$PATHS_D" -maxdepth 1 -type f`;
do
#echo $FILES # Debug
while read line1
do
export PATH="$line1:$PATH"
#echo $PATH # Debug
#echo "" # Debug
done < $FILES
done
#echo $PATH
export PATH
入力
paths.d $ pwd
/Users/xxxxxxx/bin/etc/paths.d
paths.d $ ls
gettext ruby ruby2.sh
paths.d $ more *
::::::::::::::
gettext
::::::::::::::
/usr/local/stow/gettext-021/bin
/usr/local/stow/gettext-021/bin
/usr/local/stow/gettext-021/bin
/usr/local/stow/gettext-021/bin
/usr/local/stow/gettext-021/bin
/usr/local/stow/gettext-021/bin
::::::::::::::
ruby
::::::::::::::
/usr/X11/bin:/usr/local/sbin
::::::::::::::
ruby2.sh
::::::::::::::
paths.d $
出力結果
zsh環境で期待した出力結果となった。
/usr/X11/bin:/usr/local/sbin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
paths.d $ vim
/usr/X11/bin:/usr/local/sbin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/stow/gettext-021/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Press ENTER or type command to continue
テスト1
/Users/xxxxxxx/bin/etc/paths.d ディレクトリのファイルを空にしても問題なく動作した。
--