シェルプログラミングの勉強
ふと必要になってsrchスクリプトっていうのを作ってみた。
ていうかただのファイルの中身を検索するシェルスクリプトなんだけども。
[-d ディレクトリ]でディレクトリのファイルを検索。
[-r]で再帰的にディレクトリ以下のディレクトリ(以下のディr(ry )も検索。
これだけだけど丸一日かかった。
更にfindコマンドっぽくexecオプションも作ろうかと思ったけど挫折したorz
key_flag=0 dir_flag=0 recursive_flag=0 DIR=. for arg in $* do case $arg in -h|--help) echo " srch [--help|-h][-d DIR][-r] keyword" echo " --help,-h This help text" echo " -d DIR Search under DIR(default is \'.\')" echo " -r Search recursively" echo " -exec This option has not been valid yet." exit 0 ;; -d) dir_flag=1 ;; -r) recursive_flag=1 ;; *) if [ $dir_flag -eq 1 ]; then if [ -d $arg ]; then DIR=$arg dir_flag=2 else echo "${arg}: No such directory." exit 1 fi else KEY=$arg key_flag=1 fi ;; esac done if [ $key_flag -eq 1 ]; then if [ $recursive_flag -eq 1 ]; then find $DIR | xargs grep $KEY else ls $DIR | xargs grep $KEY fi else echo "No keyword." exit 1 fi
初めてちゃんとしたシェルスクリプト書いた気がするな・・・
再帰的に検索するとかlsとfindを使い分けるだけだけど・・・
PS:途中ググったらこんなページ見つけた。もうあったのかorz