如何将 bash 补全与程序捆绑在一起并使其在当前 shell 中运行?
-
26-09-2019 - |
题
上面的问题我都捏了一把汗。我要提供的答案花了我一段时间才拼凑起来,但与重新设计完成以减少静态性相比,它仍然显得无可救药地原始和老套。我几乎不敢问是否有一些充分的理由表明完成逻辑似乎完全脱离了它正在完成的程序。
解决方案
我写了一个命令行库(可以看 在 scala 主干中),它可以让你翻转开关以获得“--bash”选项。如果你跑
./program --bash
它计算完成文件,将其写入临时文件,并回显
. /path/to/temp/file
到控制台。结果是您可以像这样使用反引号:
`./program --bash`
您将在当前 shell 中完成“program”,因为它将获取临时文件。
举个具体的例子:检查 scala trunk 并运行 test/partest。
不隶属于 StackOverflow