在后台运行的mac shell脚本循环被忽略

时间:2017-01-17 15:45:48

标签: macos shell loops scripting background-process

迭代数组以打开程序的多个实例时遇到问题。当我运行以下示例时,我得到三个fslview实例:

[self ViewMove:appRecognizer];

在这个例子中,我只获得了第一个加载文件的fslview实例:

arr=(bold_rs_fabio_precuneus_mask.nii.gz mask.nii.gz bold_rs_fabio.nii.gz)
fslview ${arr[0]} &
fslview ${arr[1]} &
fslview ${arr[2]} &

第二个例子中我缺少什么?

提前致谢 马丁

1 个答案:

答案 0 :(得分:0)

也许你应该在循环中开始一个新的shell:

arr=(bold_rs_fabio_precuneus_mask.nii.gz mask.nii.gz bold_rs_fabio.nii.gz)
for f in $arr
do
  (fslview $f & )
done

或尝试构建命令行以实际并行运行进程

arr=(bold_rs_fabio_precuneus_mask.nii.gz mask.nii.gz bold_rs_fabio.nii.gz)
cmd=""
for f in $arr
do
  cmd="$cmd fslview $f &"
done
#then let it run
$cmd

希望有所帮助