我有一个 Makefile 来运行一个需要一点时间的工具;它允许我替换使用的命令:
make TOOL=alternative-tool
Run Code Online (Sandbox Code Playgroud)
我想跳过 Makefile 中的那一步,所以我正在寻找一个以状态 0 退出的命令,它的副作用可以忽略不计。
显然,我可以只使用true,但这有点令人困惑:
make TOOL=true
Run Code Online (Sandbox Code Playgroud)
读起来好像我想运行该工具,但我不想。
是否有默认安装的可执行文件不是/bin/true以状态 0 退出,并且具有吸引人且易于键入的名称?
Eli*_*gan 42
即使您要求的不是“不是/bin/true”,用true全名代替/bin/true以表明它是true程序而不是“真实”的其他含义可能是最好的解决方案。
您担心的是true在
make TOOL=true
Run Code Online (Sandbox Code Playgroud)
似乎不是命令名称。但是如果你写
make TOOL=/bin/true
Run Code Online (Sandbox Code Playgroud)
那么这无疑是一个命令。有些人可能误读TOOL=true了其他工具在某处的意图,但TOOL=/bin/true不太可能发生这种误读。
我不确定何时:,它是一个内置的 shell 而不是外部命令,会起作用。亨宁Makholm有报道称,它似乎工作。但我认为它并不适用于所有情况,而且您发现它对您不起作用。
至于 shell 别名,您不能使用它,因为在传递给命令的参数中不会执行别名扩展,makefile 也不使用先前定义的 shell 别名。即使make在新的 shell 中运行您的命令,该 shell 也不会有别名(并且即使有别名也不会使用它,因为它将是一个非交互式 shell,不会自动启用别名扩展)。
虽然我同意使用完整路径 totrue将是最好的解决方案,但我想注意可能是迄今为止避免实际命令执行的最常见方法:echo在它前面粘贴一个。所以:
make TOOL=echo
Run Code Online (Sandbox Code Playgroud)
您始终可以创建自己的命令,该命令只返回零退出状态。一些选项:
一个适当命名的符号链接 /bin/true
一个空的 shell 脚本
一个几乎空的 C 程序:
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |