Thursday, March 9, 2006

Mac 環境構築 その3 - シェル (zsh) 設定 [mac]

zsh の設定.
といってもこれまで使っている設定ファイルをほとんどそのまま使うだけ.設定ファイルを全部ここに添付するにはあまりに膨大なのでポイントだけ挙げておくと,環境によって設定を変えたい時は zsh のデフォルト変数 (シェルパラメータ) の $OSTYPE を使うと便利.

例えばこんなかんじ.

if [ "${OSTYPE}" = 'netbsdelf' ] ; then
  if type ggrep > /dev/null 2>&1 ; then
    alias     grep='command ggrep'
  fi

  if type gls > /dev/null 2>&1  ; then
    alias     ls='command gls -hF --color=auto --show-control-chars'
  else
    alias     ls='command ls -hF'
  fi
elif [[ "${OSTYPE}" = darwin* ]] ; then
  if type gnuls > /dev/null 2>&1  ; then
    alias     ls='command gnuls -hF --color=auto --show-control-chars'
  else
    alias     ls='command ls -hFv'
  fi
else
  alias       ls='command ls -hF --color=auto --show-control-chars'
fi

$OSTYPE は確か bash にもあったと思うけど,実際にあるかどうか,またあった場合にどんな値を設定しているかはご自分のシェルで確認された方が良いだろう.まあ無くても uname から自分で設定してしまえば問題ないはず.

余談になるが,同じようなテクニックで「会社か自宅か変数」を自分で設定しても便利かも (会社では proxy 設定などする必要があるので).会社の IP アドレスが 99.XXX.XXX.XXX とかだとすると,
if [ -z "${LOCATION}" ] ; then
  case $OSTYPE in
    netbsdelf|darwin*)
    alias ifconfigcmd='/sbin/ifconfig -a'
    ;;
    linux-gnu)
    alias ifconfigcmd=/sbin/ifconfig
    ;;
    cygwin)
    alias ifconfigcmd=ipconfig
    ;;
  esac
  if [ -n "`ifconfigcmd | grep '99\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+'`" ] ; then
    LOCATION=office        ; export LOCATION
  else
    LOCATION=out_of_office ; export LOCATION
  fi
  unalias ifconfigcmd
fi
みたいな.


0 comments: