在一个.sh脚本中打开一个新的终端执行另一个脚本,并接着并行执行原终端的语句

xiahrj 2012-03-29 12:44:17
小弟有一个在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高人求助,谢谢!
...全文
1124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
justkk 2012-03-29
  • 打赏
  • 举报
回复
对,不要使用exec

./start.sh &
cd bin
./catalina.sh
帅得不敢出门 2012-03-29
  • 打赏
  • 举报
回复
./start.sh &
也可尝试放后台运行
帅得不敢出门 2012-03-29
  • 打赏
  • 举报
回复
可以把./catalina.sh执行放到脚本
start.sh中

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧