bash_completion та же команда запускается через linux32 - PullRequest
0 голосов
/ 22 октября 2019

У меня есть скрипт, который я запускаю как

./script.sh --params

или как

linux32 ./script.sh --params

в моем файле bash_completion. У меня есть

complete -F _my_function ./script.sh

Это работает толькодля вызова ./script.sh.

Я попытался добавить

complete -F _my_function "linux32 ./script.sh"

Вот функция:

$ type _my_function 
_my_function is a function
_my_function () 
{ 
    local cur="${COMP_WORDS[$COMP_CWORD]}";
    local prev="";
    (( COMP_CWORD > 0 )) && prev="${COMP_WORDS[$(( COMP_CWORD - 1))]}";
    [[ $cur == '=' && $prev == --* ]] && { 
        COMPREPLY=("");
        return
    };
    local words=(-a -o -p -h -u);
    case "${prev}" in 
        -a)
            local actions="build shell clean distclean download upgrade upload unmount";
            COMPREPLY=($(compgen -W "${actions}" -- ${cur}));
            return 0
        ;;
        -o)
            local optional_groups="kde";
            COMPREPLY=($(compgen -W "${optional_groups}" -- ${cur}));
            return 0
        ;;
        -p)
            local files=$(ls -1 src/lfs/* | sed "s,.*src/lfs/,,g");
            COMPREPLY=($(compgen -W "${files}" -- ${cur}));
            return 0
        ;;
        *)

        ;;
    esac;
    _exclude_cmd_line_opts;
    COMPREPLY=($(compgen -W "${words[*]}" -- "$cur"))
}

, но, похоже, она не работает.

Есть предложения? Спасибо, IvanK.

...