日期:2014-05-16  浏览次数:20979 次

在一个.sh脚本中打开一个新的终端执行另一个脚本,并接着并行执行原终端的语句
小弟有一个在windows下的脚本,其中的一段如下:

start /max cmd.exe /c start.bat

call \bin\catalina.bat

其作用是打开一个新的命令行窗口并在新的命令行窗口中执行start.bat这个批处理,然后不用等待新窗口的批处理执行完毕,原来的脚本继续执行bin目录下的catalina.bat这个批处理,也就是两个窗口的批处理是并行执行的。

现在我需要在Linux(具体来说是Linux Mint KDE)下写一个实现如上功能的脚本。我完全是个Linux新手,所以遇到了一些问题。以下是我写的对应脚本:

exec ./start.sh

cd bin
exec ./catalina.sh


但是问题是执行到exec ./start.sh脚本就停住了,就一直在执行start.sh(这个start.sh是等待式的,不会自己结束),不能接着执行catalina.sh。我查了一下知道了exec语句的特点就是这样的,即使start.sh执行完毕了也不会接着执行catalina.sh,但我不知道该怎样写这个脚本才能实现我想要的功能,也就是执行start.sh(如果有必要的话就打开一个新的Terminal终端执行start.sh),接着并行执行catalina.sh。向各位Linux高人求助,谢谢!

------解决方案--------------------
可以把./catalina.sh执行放到脚本
start.sh中

------解决方案--------------------
./start.sh &
也可尝试放后台运行
------解决方案--------------------
对,不要使用exec

./start.sh &
cd bin
./catalina.sh