pipe - 将多行数据传递到 Makefile 中的管道

标签 pipe makefile

在bash文件中,我可以这样写:

my_program << EOF
Some test
More test
A lot of multi-line text
EOF

这将启动 my_program 可执行文件并通过管道向其传递三行(或更多)文本。

现在我想在 Makefile (GNU make) 中也如此。我没有找到标准解决方案,解决方法如下:

LaunchMyProgram:
    echo -en "Some test\\nMore test\\nA lot of multi-line text\\n" | my_program

但这看起来很丑。还有更好的解决方案吗?

最佳答案

是的,这很丑陋,但你对此无能为力。 make 将每一行作为自己的 shell 脚本执行,除非该行以 \ 延续字符结尾;但随后换行符被删除。这更干净一点:

all:
    printf 'hi\n\
    there\n\
    how\n\
    are\n\
    you'

通常我会在这里使用 echo,但 printf 在处理转义字符时更便携。

关于pipe - 将多行数据传递到 Makefile 中的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363500/

相关文章:

c++ - Makefile g++ 使用命令行中的 -D 变量使用默认值进行编译

perl - 如何使用 Makefile.PL 和 ExtUtils::MakeMaker 复制文件?

makefile - 使用动态目标名称进行制作

来自构造函数的 C# 字符串未传递给表单

c++ - 使用 popen 写入管道仅在管道关闭时发送数据

c - C 中的多管道

c - 构建文件(Rake 或 Make?)用于构建一些具有通用选项的简单库?

c++ - C++ 中的 pipeline() 和 fork() 新手 -

c - 带 fork 的管道和子创建

c - 错误: Don't know how to make