我使用两个单独的shell脚本来运行我的两个服务器,一个是Django,另一个是npm
。
Django命令为:python3 backend/manage.py runserver
,npm命令为:npm start
我编写了运行我的Django服务器的shell脚本:
这是我的startserver.sh
文件,用于运行Django服务器
#!/bin/bash
python3 backend/manage.py runserver $1
这是我的startnode.sh
文件,用于运行npm服务器
#!/bin/bash
npm start $1
都正常。
我想,当我在终端中运行./startserver.sh
时,它应该在终端的当前选项卡中运行此python3 backend/manage.py runserver
命令,与此同时,脚本应在终端中打开另一个选项卡,然后运行以下命令:npm start
我的意思是,在一个shell脚本中,我想在同一窗口的终端的两个选项卡中运行两个脚本。
我将只运行./startserver
,它应该在两个不同选项卡中的两个命令之上运行。
答案 0 :(得分:2)
我认为该命令将为您提供帮助。
xterm -e [your_args]
也许your_args
将是startnode.sh
详细来说,您可以编写startserver.sh脚本
#!/bin/bash
python3 backend/manage.py runserver $1
xterm -e “./startnode.sh”
像这样
[参考]
Opening new terminal in shell script
Start xterm with different shell and execute commands
答案 1 :(得分:1)
假设您将两个脚本都保存在主目录a.sh
和b.sh
下。然后用下面的代码制作另一个脚本Combined.sh
sh ~/a.sh &
sh ~/b.sh
基本上,您只是在调用两个脚本,但是您将第一个脚本作为后台,以允许继续执行下一个脚本。
答案 2 :(得分:1)
tmux
tmux new-session -d 1.sh \; split-window -h 2.sh \; attach
gnome终端
阅读:Opening multiple terminal tabs and running command
for i in 1 2; do
options+=($tab -e "bash -c '${cmds[i]} ; bash'" )
done
gnome-terminal "${options[@]}"