【问题标题】:Ubuntu Shell Script opening two table and run two command using one shell scriptUbuntu Shell 脚本打开两个表并使用一个 shell 脚本运行两个命令
【发布时间】:2019-08-19 17:39:18
【问题描述】:

我使用两个单独的 shell 脚本来运行我的两个服务器,一个是 Django,另一个是 npm

Django 命令为:python3 backend/manage.py runserver,npm 命令为:npm start

我编写 shell 脚本来运行我的 Django 服务器:

这是我运行 Django 服务器的startserver.sh 文件

#!/bin/bash
python3 backend/manage.py runserver $1

这是我运行 npm 服务器的 startnode.sh 文件

#!/bin/bash
npm start $1

两者都工作正常。

我想,当我在终端运行./startserver.sh时,它应该在终端的当前选项卡中运行这个python3 backend/manage.py runserver命令,同时,脚本应该在终端中打开另一个选项卡并运行这个命令: npm start

我的意思是,在一个 shell 脚本中,我想在终端的同一窗口的两个选项卡中运行两个脚本。

我将只运行./startserver,它应该在两个不同的选项卡中运行以上两个命令。

【问题讨论】:

    标签: linux bash shell ubuntu


    【解决方案1】:

    我认为这个命令会对你有所帮助。

    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

    【讨论】:

    • 怎么样?你能给我写完整的剧本吗?
    • @dudd 请参考修改后的答案。很抱歉我现在不在 shell 环境中,所以我无法测试这个。我希望这能正常工作。
    • 在命令结束时移除放大器。它使您的第二个终端在后台运行。
    【解决方案2】:

    解决方案 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

    【讨论】:

      【解决方案3】:

      假设您将两个脚本都保存在名为a.shb.sh 的主目录下。然后用以下内容制作另一个脚本combined.sh

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

      基本上,您只是调用了两个脚本,但您将第一个脚本置于后台以允许继续执行到下一个脚本。

      【讨论】:

      • 您阅读说明了吗?他们应该打开新标签,这两个命令应该在两个标签中运行
      猜你喜欢
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      相关资源
      最近更新 更多