bash_completion通过linux32运行相同的命令

时间:2019-10-22 07:24:41

标签: bash bash-completion

我有一个脚本运行为

./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)。

0 个答案:

没有答案