_resizepart_module() { local cur prev OPTS COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" case $COMP_CWORD in 1) local DEV TYPE DEVICES='' while read DEV TYPE; do [ $TYPE = 'disk' ] && DEVICES+="$DEV " done < <(lsblk -pnro name,type) OPTS="-h --help -V --version $DEVICES" COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) ;; 2) prev="${COMP_WORDS[COMP_CWORD-1]}" COMPREPLY=( $(compgen -W "$(cat /sys/block/${prev##*/}/*/partition 2>/dev/null)" -- $cur) ) ;; 3) COMPREPLY="length" ;; esac return 0 } complete -F _resizepart_module resizepart