一段通过grep自定义选择执行程序并kill的脚本

一段通过关键字过滤并选择相应的进程kill的shell函数

killprog(){
    n=0
    # echo -e "$n) nothing"
    ps -ef | grep $1 | grep -v grep | grep -v $$ | grep -v tail | grep -v vi > /tmp/ddc.txt
    while read line
    do
        n=$(($n+1))
        pid=`echo $line | cut -d " " -f 2`
        pwdx=`pwdx $pid | cut -d " " -f 2-`
        prog=`echo $line | cut -d " " -f 8-`
        arr[n]="$pid : $pwdx > $prog"
        if [ "$pwdx" = "$2" ]; then
            echo "$n ${arr[n]}"
        else
            echo "$n) ${arr[n]}"
        fi
    done < /tmp/ddc.txt
    if [ $n -gt 0 ]; then
        echo -n "#? "
        read index
        if test "$index" ; then
            for var in ${index[@]};
            do
                if [ $var -ne 0 ] ; then
                    if [ $var -le $n ] ; then
                        pid=`echo ${arr[var]} | cut -d " " -f 1`
                        kill -9 $pid
                    else
                        echo "error index $var"
                        exit 1
                    fi
                fi
            done
        fi
    fi
}

使用时可以一次选择多个同时kill

你可能感兴趣的:(shell)