# bash export completion -*- shell-script -*- _export() { local cur prev words cword _init_completion -n = || return local i action=variable remove=false for ((i = 1; i < cword; i++)); do case ${words[i]} in -p) return ;; -*f*) action=function ;;& -*n*) remove=true ;; -*) continue ;; esac break done if [[ $cur == *=* ]]; then _variable_assignments $cur && return fi case $cur in *=) local pval=$(quote "$(eval printf %s \"\$\{${cur%=}-\}\")") # Complete previous value if it's not empty. if [[ $pval != \'\' ]]; then COMPREPLY=("$pval") else cur=${cur#*=} _filedir fi ;; *=*) cur=${cur#*=} _filedir ;; *) if [[ $cword -eq 1 && $cur == -* ]]; then COMPREPLY=($(compgen -W '-p $(_parse_usage "$1")' -- "$cur")) return fi local suffix="" if ! $remove; then suffix="=" compopt -o nospace fi COMPREPLY=($(compgen -A $action -S "$suffix" -- "$cur")) ;; esac } && complete -F _export export # ex: filetype=sh