gpt4 book ai didi

shell - 从 GNU Makefile 调用 `command -v find`

转载 作者:行者123 更新时间:2023-12-01 14:01:45 25 4
gpt4 key购买 nike

我使用 shell(bash,但我需要可移植性)和 GNU Makefile。我有这个代码:

check_commands:
command -v find >/dev/null
command -v asdf >/dev/null

正如假设的那样,第一个命令通过了,第二个命令中止了 Makefile 并出现错误。现在,我删除了 >/dev/null .那为什么
check_commands:
command -v find

产生以下错误?
make: command: Command not found.

最佳答案

从快速浏览 job.c 来看在 GNU make 的源代码中,它会尽量避免启动 shell,即当命令行足够简单(形式 cmd args ,没有重定向、复合命令等)并且 shell 是默认的时。问题是 command是内置的并且没有关联的可执行文件,因此来自 m​​ake 的错误消息。当您有 > /dev/null 时不会发生这种情况因为 make 认为该命令过于复杂,因此将其留给 sh启动它。

关于shell - 从 GNU Makefile 调用 `command -v find`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12989869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com