2

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

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

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

这是我正在运行的 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\"
" 
4

1 回答 1

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

正如您在运行此脚本时所看到的,两个sleep命令将并行运行,但主线程在它们运行时会停止。

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

替换sleep 7expect launchneuron.exp

sleep 5expect launchmpj.exp

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

echo "Simulation Complete"
...(your code to plot results)
于 2013-07-26T21:21:16.527 回答