【问题标题】:How to use xargs to run command multiple times?如何使用 xargs 多次运行命令?
【发布时间】:2022-08-22 04:38:54
【问题描述】:

我有一个可以运行一次的命令,例如:

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

我想要做的是获取一个查询列表,例如 [\"ffb557\", \"ttr887\"] 并为每个查询运行命令。我尝试运行一个启动,但得到一个错误:

echo \'ffb557\' | xargs heroku local:run python put_in_db.py --query=\'{}\'

put_in_db.py: error: unrecognized arguments: ffb557

知道我做错了什么吗?

  • 看起来您在 xargs 之后缺少-iecho \'ffb557\' | xargs -i heroku local:run python put_in_db.py --query=\'{}\' 为我工作。
  • 嗯,我试过了,但得到了:xargs: illegal option -- i
  • 我猜您使用的是 MacOS 或类似设备。试试:echo \'ffb557\' | xargs -I{} heroku local:run python put_in_db.py --query=\'{}\'

标签: linux xargs


【解决方案1】:

Linux:

% ( echo ffb557 ; echo ttr887 ) | xargs -i echo heroku local:run python put_in_db.py --query='{}'
heroku local:run python put_in_db.py --query=ffb557
heroku local:run python put_in_db.py --query=ttr887

macOS 和 BSD:

% ( echo ffb557 ; echo ttr887 ) | xargs -I % -n 1 echo heroku local:run python put_in_db.py --query='%'
heroku local:run python put_in_db.py --query=ffb557
heroku local:run python put_in_db.py --query=ttr887

删除 echo 以运行命令。

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多