# chmod(1) completion -*- shell-script -*- _chmod() { local cur prev words cword split _init_completion -s || return case $prev in --help | --version) return ;; --reference) _filedir return ;; esac $split && return # Adapted from coreutils 8.28 chmod man page local modearg="-@(@(+([rwxXst])|[ugo])|+([0-7]))" # shellcheck disable=SC2053 if [[ $cur == -* && $cur != $modearg ]]; then local opts=$(_parse_help "$1") COMPREPLY=($(compgen -W '${opts:-$(_parse_usage "$1")}' -- "$cur")) [[ ${COMPREPLY-} == *= ]] && compopt -o nospace return fi local args _count_args "" "" "$modearg" case $args in 1) ;; # mode *) _filedir ;; esac } && complete -F _chmod chmod # ex: filetype=sh