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

如何使用xargs多次执行命令?解决Heroku命令参数报错问题

问题分析与解决

错误原因

你用**单引号包裹{}**的写法存在问题:shell的单引号会完全屏蔽变量替换与特殊字符解析,xargs的占位符{}被单引号包裹后,不会被替换成实际的查询值,而是作为字面量{}传递给命令。最终实际执行的命令是:

heroku local:run python put_in_db.py --query='{}' ffb557

put_in_db.py会把ffb557当成未定义的额外参数,因此抛出unrecognized arguments错误。

正确写法

单条测试命令

去掉单引号,或改用双引号包裹占位符(推荐显式指定-I {}避免参数拆分问题):

# 写法1:去掉单引号
echo 'ffb557' | xargs heroku local:run python put_in_db.py --query={}

# 写法2:显式指定占位符+双引号(更安全,适合含特殊字符的查询)
echo 'ffb557' | xargs -I {} heroku local:run python put_in_db.py --query="{}"

批量执行查询列表

针对["ffb557", "ttr887"]批量执行,有两种简单方案:

  1. 用xargs+printf批量传递:
printf "%s\n" ffb557 ttr887 | xargs -I {} heroku local:run python put_in_db.py --query="{}"
  1. 用shell循环(更直观,易调试):
for query in ffb557 ttr887; do
    heroku local:run python put_in_db.py --query="$query"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:33:58