todo_array[1]="echo start1;sleep 3;echo done1"todo_array[2]="echo start2;sleep 3;echo done2"todo_array[3]="echo start3;sleep 3;echo done3"todo_array[4]="echo start4;sleep 3;echo done4"todo_array[5]="echo start5;sleep 3;echo done5"todo_array[6]="echo start6;sleep 3;echo done6"todo_array[7]="echo start7;sleep 3;echo done7"todo_array[8]="echo start8;sleep 3;echo done8"todo_array[9]="echo start9;sleep 3;echo done9"max_jobs=4seq ${#todo_array[@]} | xargs -i --max-procs=$max_jobs bash -c $todo_array[{}]
但是当我执行时,我得到一个空的9 newlinex输出.
我究竟做错了什么?
谢谢
编辑:我修改了它
seq ${#todo_array[@]} | xargs -i --max-procs=$max_jobs bash -c "$todo_array[{}]"
我得到以下奇怪的输出:
start1start1start1start1done1[2]done1[3]done1[1]done1[4]start1start1start1start1done1[5]done1[6]done1[7]done1[8]start1done1[9]解决方法 试试这个:
#!/bin/bashtodo_array[1]="echo start1;sleep 3;echo done1"todo_array[2]="echo start2;sleep 3;echo done2"todo_array[3]="echo start3;sleep 3;echo done3"todo_array[4]="echo start4;sleep 3;echo done4"todo_array[5]="echo start5;sleep 3;echo done5"todo_array[6]="echo start6;sleep 3;echo done6"todo_array[7]="echo start7;sleep 3;echo done7"todo_array[8]="echo start8;sleep 3;echo done8"todo_array[9]="echo start9;sleep 3;echo done9"max_jobs=4for i in "${todo_array[@]}"do echo $idone | xargs -IX --max-procs=$max_jobs bash -c "X"总结
以上是内存溢出为你收集整理的linux – 使用脚本运行有限数量的并行程序全部内容,希望文章能够帮你解决linux – 使用脚本运行有限数量的并行程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)