shell 查找目录下某个文件,shell 查找文件
直接上代码:
#!/usr/dldym/ksh#set -xtest_digi(){ case $1 in #[0-9]* ) [[:digit:]]* ) if [ $1 -gt $2 ] then echo " **** ERROR:没有您选择的文件 **** " return 0 else return 1 fi ;; * ) echo " **** ERROR:输入非正数[$1] ****" return 0 ;; esac}if [[ "$1" = *.c ]];then find ~/src -name "$1" > ~/tmp/_$$else find ~/src -name "$1*" > ~/tmp/_$$filinenum=` wc -l ~/tmp/_$$ | awk '{ print $1}' `#echo 行数是$linenumif [ $linenum == 0 ]then PATHNAME="" echo 文件$1不存在elif [ $linenum == 1 ]then PATHNAME=`cat ~/tmp/_$$`else echo cat -n ~/tmp/_$$ echo echo 有多个文件符合条件,请选择要编辑的文件: read choice while test_digi $choice $linenum do echo echo cat -n ~/tmp/_$$ echo echo 有多个文件符合条件,请选择要编辑的文件: read choice done PATHNAME=`head -${choice} ~/tmp/_$$ | tail -1`fi#echo 您选择的路径是 $PATHNAMEif [ x$PATHNAME != x ]then cd $(dirname $PATHNAME) echo 您要编辑的文件是 echo echo " " $(basename $PATHNAME ) echo # vim $(basename $PATHNAME) vi $(basename $PATHNAME )fiunlink ~/tmp/_$$ 69,1 Bot
可以看到,选择的文件不加后缀则会把所有文件都列出来提供选择,输入相应的文件编号,即可进入vi模式编辑该文件。
如果to *.c 则会直接进入该 .c文件,不会进入选择模式。
为了保证,退出vi模式后当前目录在该文件的目录下,则需要在 .profile 文件中添加如下代码:
alias to='. to'