我有一个允许在后台执行 Bash 进程的脚本,我称之为“backy”。我想在后台运行的程序我这样调用:
backy long-running-script param1 param2
现在的问题是,long-running-script
如果我预先添加另一个脚本,我会丢失 Bash 完成。
我想编写一个 Bash 完成文件,它不仅保留 Bash 完成long-running-script
及其所有参数,还保留我想用 backy 调用的所有其他脚本。
我对 Bash 完成有一些经验,但我只是缺少可以插入到我的 Bash 完成脚本中的命令,以便它完成要调用的脚本的完成。有任何想法吗?
到目前为止我的完成:
have backy &&
_backy_complete()
{
local cur prev goals
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
# How to get the completion from the script that is the param for backy,
# in a generic way?
COMPREPLY=( ????? )
return 0
} &&
complete -F _backy_complete backy
编辑 - 解决方案:
感谢 Lekensteyn,我将现有 bash 完成脚本的内容替换为以下行:
complete -F _command backy