LoginSignup
0
0

More than 3 years have passed since last update.

zsh /etc/zshenv 用シェルスクリプト。テスト版

Last updated at Posted at 2020-08-31

目的

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 ディレクトリのファイルを空にしても問題なく動作した。

--

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0