当用户在 bash 中自动完成时隐藏来自 shell 的 make 目标

Mar*_*tus 8 bash make autocomplete

有没有办法在 a 中标记一些目标,Makefile以便在用户键入make然后按下时它们根本不会出现在 shell 中Tab?我Makefile有太多的配方,当用户按下Tab寻找目标时,我不希望它们全部出现在 shell 自动完成中。

DrB*_*eco 8

在研究了问题并提出了我在第一个答案中写的解决方案后,我意识到还有另一种非常简单的方法。

只需将您不想显示的目标名称以点开头

例子:

.PHONY: foo .hiddentarget
foo: foo.x .hiddentarget
foo.x: foo.c
        touch foo.x
.hiddentarget: foo.x
        echo foo.x ok, I believe
Run Code Online (Sandbox Code Playgroud)

这就是你所需要的!

在试图弄清楚如何防止名为.HIDDENGOALS的目标被错误调用并运行所有隐藏目标后,我想到了这个想法。:)

警告虽然我没有看到任何,但我不确定使用像“ .targetname ”(以点开头)这样的目标名称是否有任何副作用。