gpt4 book ai didi

bash - makefile中的多行回显

转载 作者:行者123 更新时间:2023-12-05 06:37:33 26 4
gpt4 key购买 nike

我正在尝试在 makefile 中做简单的 c++ 类生成器(取决于给定的名称),但当我不知道 bash 以及这些东西如何工作时,这真的很烦人。

class:
@echo "Type class name: "; \
read CLASS_NAME; \
echo Creating class called $${CLASS_NAME}; \
echo "Class $${CLASS_NAME} {
int x;
int y;
};">./$${CLASS_NAME}.h

我怎样才能使最后的 echo 起作用?我不知道如何回显多行。

最佳答案

这里的反斜杠是由make计算的,而不是由它调用的shell计算的。 (类似地,make 本身会删除换行符,而不是将它们传递给 shell)。

这里最简单的做法是使用 printf 格式字符串来插入换行符,而不是试图让它们变成文字:

class:
@echo "Type class name: "; \
read CLASS_NAME; \
echo "Creating class called $${CLASS_NAME}"; \
printf '%s\n' "Class $${CLASS_NAME} {" 'int x;' 'int y;' '};' >"./$${CLASS_NAME}.h"

关于bash - makefile中的多行回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557806/

26 4 0