# ss(8) completion -*- shell-script -*- _ss() { local cur prev words cword split _init_completion -s || return case $prev in --help | --version | -!(-*)[hV]) return ;; --family | -!(-*)f) COMPREPLY=($(compgen -W 'unix inet inet6 link netlink' \ -- "$cur")) return ;; --query | -!(-*)A) local prefix= [[ $cur == *,* ]] && prefix="${cur%,*}," COMPREPLY=($(compgen -W '$("$1" --help | \ command sed -e "s/|/ /g" -ne "s/.*QUERY := {\([^}]*\)}.*/\1/p")' \ -- "${cur##*,}")) ((${#COMPREPLY[@]} == 1)) && COMPREPLY=(${COMPREPLY/#/$prefix}) return ;; --diag | --filter | -!(-*)[DF]) _filedir return ;; esac $split && return if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) [[ ${COMPREPLY-} == *= ]] && compopt -o nospace fi } && complete -F _ss ss # ex: filetype=sh