对于不同的项目,我有两个具有相同文件名、不同路径的单独脚本:
/home/me/projects/alpha/bin/hithere
和/home/me/projects/beta/bin/hithere
.
相应地,我有两个单独的 bash 完成脚本,因为每个脚本的正确完成都不同。在完成脚本中,“完成”命令为每个完成指定相关脚本的全名运行,即
complete -F _alpha_hithere_completion /home/me/projects/alpha/bin/hithere
但是,无论调用哪个实际版本,似乎只有最近运行的脚本才有效hithere
:似乎 bash 完成只关心命令的文件名而忽略路径信息。
有没有办法改变这种行为,以便我可以拥有这两个具有相同名称的独立脚本,每个脚本都有不同的完成功能?
请注意,我对需要 alpha 了解 beta 或需要第三个组件了解它们中的任何一个的解决方案不感兴趣——这将违背我的目的。