gpt4 book ai didi

c - 寻找匹配的 '` ' 时出现意外的 EOF,但仅当从 makefile 运行时?

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:32 24 4
gpt4 key购买 nike

我的 shell 脚本有问题,但是,在这里发布它有点太长了。这是它的链接:http://pastebin.com/jh9fHJ2e

有谁知道为什么我会收到这两个错误?我像这样从 makefile 中调用它:

.PHONY: compile clean
compile:
$(shell ./compile.sh)
clean:
$(shell ./clean.sh)

但是,如果我手动运行它 (`./compile.sh`),我不会收到错误。我究竟做错了什么?我担心引号来自输出行:make: Nothing to be done for 'default. 由于那里奇怪的引号失效,但如果 Make 是导致它的原因,我该如何防止这种情况?

希望这是一个合理的、非重复的问题。它与我检查过的其他类似的不一样。如果问题不好,我很乐意将其删除,请告诉我。

最佳答案

你不应该在这里使用 $(shell ...)。 shell 函数就像 shell 脚本中的反引号:执行的结果是所调用命令的标准输出。如果您的命令打印出一些文本,那将尝试作为 shell 脚本执行。

食谱已经在 shell 中运行,因此您不需要 shell 函数:

.PHONY: compile clean
compile:
./compile.sh
clean:
./clean.sh

我希望我能理解为什么这么多人尝试在像这样的食谱中使用 shell 函数...我觉得必须使用非常糟糕的示例进行一些“介绍”。

无论如何,通常您不会创建单独的 shell 脚本:您会将编译和清理命令直接放入配方中。当 makefile 所做的只是运行 shell 脚本时,在其中键入“make clean”有什么意义,因此您只需键入“./clean.sh”并获得相同的行为?

关于c - 寻找匹配的 '` ' 时出现意外的 EOF,但仅当从 makefile 运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24248062/

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