以前紹介したzsh auto_pushd のシェルスクリプトで
gd.shというの書いたのですが、少し改良しました。
改良した点はdirs -v -l で表示される重複したディレクトリは表示しないよう
にしたのと、逆順ソートにして最新のディレクトリが一番下に表示されるように
しました。改良時間は1時間くらいなのでうまく動かない場合があるかもしれませんが
その時はコメントお願いします。
では プログラムです。
ここから————–
#!/bin/sh
dirs -v -l | awk '{
a[$1]=$2;
b[$1]=$2;
}
END{
for( i=0; i<NR; i++){
work=a[i];
checknum=0;
for( j=i+1; j<NR; j++){
if( work == a[j] ){
b[j] = "skip";
}
}
}
for ( i=NR-1; i>-1; i--){
if ( b[i] != "skip"){
printf("%d %s\n",i,b[i]);
}
}
}'
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
ここまで————–







チューニングの初歩
第2版はすごい SolarisとLinux対応
内容は良いんですが...

