Как включить завершение файла по умолчанию в bash

Скажи, у меня есть команда с именем "Foo» который принимает один аргумент (либо "шифровать» или же "расшифровать»), а затем список файлов. Я хочу написать скрипт завершения bash, который помогает с первым аргументом, а затем включает стандартное завершение файла для остальных. Ближайший ямы смогли прийти вот это:

complete -F _foo foo

function _foo()
{
    local cmds cur
    if [ $COMP_CWORD -eq 1 ]
    then
        cur="${COMP_WORDS[1]}"
        cmds=("encrypt decrypt")
        COMPREPLY=($(compgen -W "${cmds}" -- ${cur}) )
    else
        COMPREPLY=($(compgen -f ${COMP_WORDS[${COMP_CWORD}]} ) )
    fi
}

Это правильно делает первый аргумент и выберет имя файла из текущего каталога для последующих. Но, скажем, текущий каталог содержит панель подкаталогов, которая содержит файл baz.txt. После ввода ba-TAB-TAB, завершение приводит к "бар " (пробел после "r") и готов выбрать следующий аргумент. То, что я хочу, это стандартное завершение bash, где результат "бар/" (без косой черты), готов выбрать файл в подкаталоге. Есть ли способ получить это?

Ответы на вопрос(2)

Ваш ответ на вопрос