shell - 如何在命令行中传递存储在文本文件中的make标志?
问题描述
我有一个名为 OPTIONS.txt 的文本文件,用于存储 Makefile 的所有标志:
arg1=foo arg2="-foo -bar"
我想将此文件中的所有标志传递给make
. 然而,
make `cat OPTIONS.txt`
失败make: invalid option -- 'a'
。似乎shell将其解释为:
make arg1=foo arg2="-foo -bar"
^argv[1] ^argv[2] ^argv[3]
有没有办法让它解释为:
make arg1=foo arg2="-foo -bar"
^argv[1] ^--------argv[2]
解决方案
由于您控制选项文件,因此每行存储一个选项:
arg1=foo
arg2="-foo -bar"
然后在 shell 中,将文件读入一个数组,每行一个元素:
readarray -t opts < OPTIONS.txt
现在您可以调用 make 并保持选项完整:
make "${opts[@]}"
推荐阅读
- redux - 什么是 redux-loop 以及我们如何在 react native 中使用它
- c++ - 如何使用 cpp 查找我的本地系统日期格式?
- jsf - p:dataTable 中未正确返回所选行
- python - 如何循环函数并存储循环的输出值
- pyspark - Pyspark:使用子字符串和频率向量创建字符串
- c# - 如何在 SendContext 过滤器上检索 MassTransit 中的当前 IServiceProvider 范围 (MS DI)
- python - 如何使用带有 json(或 yaml)文件的 matplotlib 制作图形?
- jquery - 从 jquery 获取数据在控制器中创建的项目
- matomo - Matomo 不再跟踪动作
- c# - TcpListener 和 WebSocket 失败:一个或多个保留位打开:reserved1 = 1,reserved2 = 0,reserved3 = 0