#compdef sh ksh bash zsh csh tcsh rc if [[ $service == zsh ]]; then # try a bit harder if [[ ${words[CURRENT-1]} == -o ]]; then _options # no other possibilities return fi fi if (( CURRENT == ${words[(i)-c]} + 1 )); then compset -q _normal else local n=${words[(b:2:i)[^-]*]} if (( n <= CURRENT )); then compset -n $n _alternative \ 'files:file:_files' \ 'commands:command:_normal' && return 0 fi _default fi