2007/5/28 月曜日

zsh auto_pushd のシェルスクリプト

Posted in シェルスクリプト by 管理人 @ 5 月 28, 2007

LinuxやUnixを使っている人はシェルというものにこだわりがあるものだ。
solarisやBSD系の人はだいたいcsh tcsh。Linuxの人はbashが定番なのだが、
zshはご存知だろうか?アルファベットのzがついているので最後のシェルという
意味らしいのだが、その名にふさわしく最強のシェルだそうだ。

どんな感じかは漢のzshというコラムに
zshの魅力が紹介されている。

この中のsetopt auto_pushd というオプションが便利だな~と私は使ってみて思った。
ということで、シェルスクリプトで似たような感じができないかなと思ったので、作ってみました。
けっこうzshが入ってる環境は少ないもので(笑)

とりあえず下記のプログラムをファイルに保存し実行権限をつけてください。
ここではgd.shという名前に保存したとする。

ここから————–

#!/bin/sh
dirs -v
echo 移動したい番号を選んでください。
read newdir

# 入力値に1をプラスし、その終了ステータスを判定する。
expr 1 + $newdir >/dev/null 2>&1
case $? in
    0 | 1 )var=`dirs -v -l | grep -w $newdir | awk '{printf("%s\n",$2)}'`
               cd $var;;
        * ) echo " 数字以外が入力されました >$newdir" ;;
esac

ここまで————–

そして、pathが通っているとこに持っていってください。
次にaliasに下記を設定してください。
alias gd=’. gd.sh’
alias cd=’pushd > /dev/null’

これで終了です。
# gd
で起動できると思います。
あとはお好きにしてください。

また便利なシェルスクリプトを作ったら載せてみたいと思います。

XHTML 1.0 CSS 2.0 RSS