# Completions for tools included in util-linux (not necessarily Linux specific) # renice(8) completion # have renice && _renice() { local cur prev words cword _init_completion || return local command=$1 curopt i=0 # walk back through command line and find last option while [[ $i -le $cword && ${#COMPREPLY[@]} -eq 0 ]]; do curopt=${words[cword-$i]} case "$curopt" in -u) _allowed_users ;; -g) _pgids ;; -p|$command) _pids ;; esac i=$(( ++i )) done } && complete -F _renice renice # kill(1) completion # have kill && _kill() { local cur prev words cword _init_completion || return if [[ $cword -eq 1 && "$cur" == -* ]]; then # return list of available signals _signals else # return list of available PIDs _pids fi } && complete -F _kill kill # look(1) completion # have look && _look() { local cur prev words cword _init_completion || return if [[ $cword -eq 1 ]]; then COMPREPLY=( $( compgen -W '$(look "$cur" 2>/dev/null)' -- "$cur" ) ) fi } && complete -F _look -o default look have ionice && _ionice() { local cur prev words cword _init_completion || return local offset=0 i for (( i=1; i <= cword; i++ )); do case ${words[i]} in -h) return ;; -p) offset=0 break ;; -c|-n) (( i++ )) continue ;; -*) continue ;; esac offset=$i break done if [[ $offset -gt 0 ]]; then _command_offset $offset return fi case $prev in -c) COMPREPLY=( $( compgen -W '{0..3}' -- "$cur" ) ) return ;; -n) COMPREPLY=( $( compgen -W '{0..7}' -- "$cur" ) ) return ;; -p) _pids return ;; esac if [[ $cur == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) return fi } && complete -F _ionice ionice have dmesg && _dmesg() { [[ $OSTYPE == *solaris* ]] && return # no args there local cur prev words cword _init_completion || return case $prev in -s|-M|-N) return ;; -n) COMPREPLY=( $( compgen -W '{1..8}' -- "$cur" ) ) return ;; esac if [[ $cur == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) return fi } && complete -F _dmesg dmesg # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh