Ubuntu Shell脚本打开两个表并使用一个Shell脚本运行两个命令

时间:2019-08-19 17:39:18

标签: linux bash shell ubuntu

我使用两个单独的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,它应该在两个不同选项卡中的两个命令之上运行。

3 个答案:

答案 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.shb.sh下。然后用下面的代码制作另一个脚本Combined.sh

sh ~/a.sh &
sh ~/b.sh

基本上,您只是在调用两个脚本,但是您将第一个脚本作为后台,以允许继续执行下一个脚本。

答案 2 :(得分:1)

解决方案1:

tmux

tmux new-session -d  1.sh \; split-window -h 2.sh \; attach

解决方案2:

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[@]}"

更新

阅读Terminal Multiplexers

相关问题