繁体   English   中英

在背景中如何运行命令,该命令执行另一个运行脚本的终端

[英]How to run a command, which executes another terminal running a script, in the backgroud

因此,我目前正在编写一个BASH脚本来扫描某些文本文件。 有成千上万个文本文件,所以我编写了另一个脚本,该脚本将有多少文章分成几部分,然后将负载分配到其他终端,然后再运行扫描脚本。 我的问题是,当我运行负载分配脚本时,我不想在屏幕上弹出10个不同的终端。 我不得不以某种方式将这些终端置于后台,但仍然可以运行。 我知道有一个命令&可以让您执行此操作,但是终端仍然在我的屏幕上弹出。

到目前为止,我有以下命令:

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

屏幕上弹出五个运行./script终端。 我希望它们仅在后台运行,因此它们不会在屏幕上弹出。 仅在gnome-terminal命令的末尾添加&无效。 有什么建议么?

您想使用括号创建一个子shell:

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

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

screen -d -m ./script

如果您在for循环中运行此程序,则可以在后台创建多个终端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM