loops - 如何循环通过 Makefile (GNU) 中的文本文件?
问题描述
我在一个文本文件中有一个 ID 列表:pid.txt 用空格分隔。我想为每个 ID 运行一个 python 程序。这基本上意味着我想运行以下命令:
python ./program.py id1
python ./program.py id2
python ./program.py id3
...
我正在创建一个makefile来做到这一点。但我无法编写适当的代码。我尝试了很多东西,例如:
target:
$(foreach var,$(pid.txt),python ./program.py $(var);)
但这些方法都不起作用。另外,我想并行化这个。使用-j。
解决方案
我不会费心尝试使用 make 构造,只需调用一个简单的 shell 脚本。例如:
target:
for id in $$(cat pid.txt); do python ./program.py "$$id"; done
根据所需的行为,您可能需要执行以下操作:
...; do python ./program.py "$$id" || exit 1; done
失败时中止。
推荐阅读
- php - 从开始 ipv6 和结束 IPv6 计算 IPv6 范围
- http - 如何限制 Go Transport 中的 keep-alive TTL?
- python - 是否有任何内置函数可以在 Python 中获取负整数的二进制格式?
- json - 将正确的 json 对象分配给类
- json - 如何解析以下字符串2数组
- c - 欧拉项目第58题,错误在哪里
- database - 如何使用 mongoDB 找到没有评分或评论的电影的标题
- java - 无法在 EC2 实例上远程调试 Java
- reactjs - 如何在es6中格式化数组数据
- python - 我想通过使用网络摄像头将捕获图像添加到我的 PyQt gui 窗口中,网络摄像头图像将出现在 gui 窗口中