You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile规则中将Bash脚本输出作为命令行参数传递

解决方法

在Makefile里要实现把脚本输出作为命令行参数传递,核心是用shell命令替换,但要注意Makefile对$符号的特殊处理——需要用$$来表示shell里的单个$。

方法1:使用你已有的Bash脚本

假设你的脚本名叫gen_arg.sh,先确保它有可执行权限:

chmod +x gen_arg.sh

然后在Makefile里写规则:

# 定义执行程序的规则
run:
	./schoolprogram $$(./gen_arg.sh)

这里的$$(./gen_arg.sh)会让shell执行你的脚本,把输出内容作为参数传给./schoolprogram,而不是传递脚本路径本身。

方法2:直接嵌入Python命令(省去额外脚本)

如果不想单独维护一个sh脚本,可以直接把生成参数的Python命令写到Makefile里,更简洁:

run:
	./schoolprogram $$(python -c 'print "A"*1000 + "Q"*200')

关键说明

Makefile里的$是用来引用变量的,所以要让shell识别命令替换的$(),必须把$转义成$$,这样Makefile处理后,传给shell的就是正常的$(...)命令替换语法。

内容的提问来源于stack exchange,提问作者finjasnappy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:15:31