当前位置: 技术问答>linux和unix
在一个.sh脚本中打开一个新的终端执行另一个脚本,并接着并行执行原终端的语句
来源: 互联网 发布时间:2017-02-12
本文导语: 小弟有一个在windows下的脚本,其中的一段如下: start /max cmd.exe /c start.bat call bincatalina.bat 其作用是打开一个新的命令行窗口并在新的命令行窗口中执行start.bat这个批处理,然后不用等待新窗口的批处理执行完毕...
小弟有一个在windows下的脚本,其中的一段如下:
start /max cmd.exe /c start.bat
call bincatalina.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高人求助,谢谢!
start /max cmd.exe /c start.bat
call bincatalina.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高人求助,谢谢!
|
对,不要使用exec
./start.sh &
cd bin
./catalina.sh
./start.sh &
cd bin
./catalina.sh
|
可以把./catalina.sh执行放到脚本
start.sh中
start.sh中
|
./start.sh &
也可尝试放后台运行
也可尝试放后台运行