Parent directory

_n-kill

834 bytes
 1#compdef n-kill
 2
 3local context ret=1
 4
 5typeset -a list linewords
 6typeset -aU words wordbits
 7local line word
 8integer cygwin=0
 9
10local IFS="
11"
12
13case "$(uname)" in
14    CYGWIN*) list=( `command ps -Wa` ); cygwin=1 ;;
15    *) list=( `command ps -o pid,uid,command -A` ) ;;
16esac
17
18shift list
19
20IFS=" "
21for line in "${list[@]}"; do
22    linewords=( $=line )
23    if [ "$cygwin" = "1" ]; then
24        linewords=( "${(@)linewords[8,-1]}" )
25    else
26        linewords=( "${(@)linewords[3,-1]}" )
27    fi
28    for word in "${linewords[@]}"; do
29        if [ "$cygwin" = "1" ]; then
30            wordbits=( "${(@s:\:)word}" )
31        else
32            wordbits=( "${(@s:/:)word}" )
33        fi
34        words+=( "${wordbits[@]}" )
35    done
36done
37
38_wanted bits expl "Processes' name bits" \
39    compadd -M 'm:{a-z}={A-Z}' "$@" -a - words && ret=0
40
41return "$ret"