Bash脚本在继续脚本之前等待gnome-terminal完成,仅适用于脚本的第一个实例

时间:2013-07-23 23:02:51

标签: bash expect gnome-terminal

我有一个bash脚本,它打开一个新的gnome终端,它有两个运行更多脚本的选项卡。两个选项卡中的脚本完成后,父终端中的主脚本继续运行。

当我运行此bash脚本的多个实例时,它不再等待其他gnome-terminal完成,然后再继续使用父终端脚本。

如何修复它以便脚本的其他实例像第一个一样运行?

这是我正在运行的bash脚本。我通过在新终端中键入sh scriptname.sh来运行其他实例。

    gnome-terminal --tab --command="expect launchneuron.exp" --tab --command="expect launchmpj.exp"
echo "Simulation Complete"
echo "Plotting Results"
expect -c "
set timeout -1
spawn ssh $username@server
expect \"password\"
send \"$password\r\"
expect \"$ \"
send \"qsub -I -q abc -A lc_tb -l nodes=1 -l walltime=24:00:00 -d .\r\"
expect \"$ \"   
send \"sh plotgraph.sh\r\" 
expect \"$ \" 
send \"exit\r\"
" 

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
date
bash -c "sleep 7" &
bash -c "sleep 5" &
wait
date

正如您在运行此脚本时所看到的那样,两个睡眠命令将并行运行,但主线程停止,同时它们正在运行

Sat. Jule 27 01:11:49 2013
Sat. Jule 27 01:11:56 2013

sleep 7替换为expect launchneuron.exp

sleep 5expect launchmpj.exp

并在调用"wait"后添加绘图命令:

echo "Simulation Complete"
...(your code to plot results)