Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 用于在前台但在不同终端选项卡上运行进程的脚本_Linux_Bash_Shell_Background_Foreground - Fatal编程技术网

Linux 用于在前台但在不同终端选项卡上运行进程的脚本

Linux 用于在前台但在不同终端选项卡上运行进程的脚本,linux,bash,shell,background,foreground,Linux,Bash,Shell,Background,Foreground,我不熟悉shell脚本。我正在使用gnome终端。我已经写了一个简单的脚本,我需要一个接一个地开始我的过程,下面是我的脚本: #!/bin/bash cd A/ sleep 1 ./exe1 & echo "-------- exe1 STARTED------" cd ../../B/ sleep 1 ./exe2_a & sleep 1 ./exe2_b & echo "----

我不熟悉shell脚本。我正在使用
gnome终端
。我已经写了一个简单的脚本,我需要一个接一个地开始我的过程,下面是我的脚本:

#!/bin/bash    
    cd A/
    sleep 1
    ./exe1 &
    echo "-------- exe1 STARTED------"

    cd ../../B/
    sleep 1
    ./exe2_a &
    sleep 1
    ./exe2_b &
    echo "--------exe2 STARTED------"

    cd ../C/
    sleep 1
    ./NAV_exe3_a &
    sleep 1 
    ./NAV_exe3_b &
    echo "--------exe3 STARTED------"

正如您所看到的,我在后台启动了5个不同的进程,但如何通过一个脚本在终端(前台)的5个不同选项卡中启动它们?有什么办法吗?

如果您有可用的
gnome终端
,您可以这样做:

gnome-terminal \
  --tab -e "./exe1" \
  --tab -e "./exe2" \
  --tab -e "./exe3"
请注意,这将并行启动所有操作。如果需要,可以使用睡眠实现定时延迟:

gnome-terminal \
  --tab -e "./exe1" \
  --tab -e "sh -c 'sleep 5; ./exe2'" \
  --tab -e "sh -c 'sleep 10; ./exe3'"

这取决于您使用的终端仿真器。外壳对你的终端一无所知;它只知道父进程提供给它的环境。谢谢!这对我很有用。但是
--tab-e“sleep 10;/exe3”
并不是那么完美。你有其他解决方案吗?你没有指出它以什么方式不起作用,但请查看我的更新;我想这会解决你的问题。再次感谢拉尔克斯,但是
sh-c
也没有起作用。但是我在前台运行所有进程的任务很好,但是在不同的终端(不是标签)中运行。再次感谢大家!