如何在后台运行执行运行脚本的另一个终端的命令

时间:2014-02-10 23:53:46

标签: linux bash shell

所以我正在编写一个扫描某些文本文件的BASH脚本。有成千上万的文本文件,所以我写了另一个脚本,它分割了多少篇文章,并将负载分配到其他终端,然后运行扫描脚本。我的问题是,当我运行我的负载分配脚本时,我不希望在屏幕上弹出10个不同的终端。不知何故,我必须把这些终端放在后台仍然运行。我知道有一个命令&可以让你这样做,但终端仍然会弹出我的屏幕。

到目前为止,我有这个命令:

for ((i=1; i<=5; i++))
do
gnome-terminal -x ./script $a $b $c $d
done    

屏幕上弹出五个运行./script的终端。我希望他们只是在后台运行,所以他们不会弹出屏幕。只需将&添加到gnome-terminal命令的末尾就不起作用了。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您想使用括号创建子壳:

for ((i=1; i<=5; i++))
do
    (./script $a $b $c $d)&
done  

答案 1 :(得分:0)

感谢epx(第一个评论问题的人),实际上有一种非常简单的方法可以在后台运行10个不同的终端:

screen -d -m ./script

如果你在for循环中运行它,你可以在后台创建多个终端。