如何向GNU Parallel传递无参数以重复执行指定命令?
实现GNU Parallel重复执行无参数命令的方法
以下几种方式都可以实现让GNU Parallel重复执行不带参数的command_to_repeat命令100次:
方法1:使用-N0选项忽略参数
通过-N0告诉Parallel不读取传入的参数,仅根据输入的数量触发命令执行:
parallel --dry-run -N0 command_to_repeat ::: $(seq 100)
seq 100生成100个数值作为触发计数,-N0让Parallel每次执行时不把数值作为参数传递给命令。
方法2:通过yes管道生成触发信号
用yes输出空字符串,配合head限制次数,再通过管道传递给Parallel:
yes '' | head -n 100 | parallel --dry-run command_to_repeat
yes ''会不断输出空行,head -n 100截取前100行,Parallel每读取一行就执行一次无参数的命令。
方法3:使用--repeat指定重复次数
通过--repeat参数指定命令的重复执行次数,配合空参数实现无参数调用:
parallel --dry-run --repeat 100 command_to_repeat ::: ''
--repeat 100让Parallel将空参数重复执行100次,由于参数是空字符串,最终执行的命令不带任何参数。
去掉--dry-run参数即可实际执行命令,而非仅打印预览。
内容的提问来源于stack exchange,提问作者Geremia
相关产品推荐
相关产品推荐

