我知道我可以使用“parallel”在具有给定增量的变量上并行运行任何脚本/应用程序的多个实例,例如:
parallel "echo hello {}" ::: {1..16..2}
输出将是:
hello 1
hello 3
hello 5
hello 7
hello 9
hello 11
hello 13
hello 15
我想使用一个与run变量相乘的增量,以便得到如下输出:
hello 1
hello 2
hello 4
hello 8
hello 16
我应该在{1..16 ..#}写什么?
谢谢!
最佳答案 试试这个:
parallel "echo hello {}" ::: $(awk 'BEGIN {for(i=0; i<=16; i++) printf 2**i" "}')
awk用于打印2的幂列表,然后并行使用.
或者:
parallel "echo hello {}" ::: $(printf '%s\n' 2^{0..16} | bc | tr '\n' ' ')
这打印出数字1到16作为字符串x ^ 2的一部分,printf确保每个数字在一个单独的行上. bc然后计算实际数字,tr再次删除换行符.