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

如何使用GNU parallel同时传入输入文件参数与命令字符串参数

解决方法

你只需要做两处修改即可:

  1. 在Parallel的启动参数中添加--colsep ' '指定按空格拆分每行的参数
  2. 去掉命令外层多余的{}包裹,Parallel的命令部分不需要额外加花括号

修改后的完整脚本如下:

parallel="parallel --delay 0.2 -j 100 --joblog remaining_runs_$1.log --resume --colsep ' '"
$srun $parallel python3 scaling.py {1} {2} {3} <  missing_runs_$1.txt

原写法异常原因

  • 加--colsep后丢失Python命令:是因为你错误地将整段执行命令包裹在了额外的{}中,GNU Parallel会将{}包裹的内容识别为参数替换占位符,无匹配参数时就会丢弃这部分内容
  • 不加--colsep时参数合并:Parallel默认将整行内容作为单个参数赋值给{1},所以三个数值会被合并为一个字符串传入脚本

验证方法

正式执行前可以添加--dry-run参数打印实际生成的执行命令,确认参数拆分和命令拼接符合预期后再去掉该参数正式运行:

$srun $parallel --dry-run python3 scaling.py {1} {2} {3} < missing_runs_$1.txt

内容的提问来源于stack exchange,提问作者antonia-had

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:54:04