天天看点

linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:

分享一个shell写的linux系统下查找文件并进入vi模式的命令:

直接上代码:

#!/usr/bin/ksh
           
#set -x

test_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/_$$
fi
linenum=` wc -l ~/tmp/_$$ | awk '{ print $1}' `
#echo 行数是$linenum
if [ $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 您选择的路径是 $PATHNAME
if [ x$PATHNAME != x ]
then
    cd  $(dirname $PATHNAME)
    echo 您要编辑的文件是
    echo
    echo "             " $(basename $PATHNAME )
    echo 
#    vim $(basename $PATHNAME)
    vi   $(basename $PATHNAME )
fi
unlink  ~/tmp/_$$
                                                                                                                   69,1          Bot
           
linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:

可以看到,选择的文件不加后缀则会把所有文件都列出来提供选择,输入相应的文件编号,即可进入vi模式编辑该文件。

linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:
linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:

如果to *.c  则会直接进入该 .c文件,不会进入选择模式。

linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:

为了保证,退出vi模式后当前目录在该文件的目录下,则需要在 .profile 文件中添加如下代码:

alias to='. to'
           
linux系统下查找指定文件夹下文件的shell命令分享一个shell写的linux系统下查找文件并进入vi模式的命令:

继续阅读