打开一个新的终端和源脚本

我想编写一个脚本来激活虚拟环境并在新终端中为Django项目运行我的服务器。 我的startProject.sh是:

#!/bin/bash source virtualenv/bin/activate python manage.py runserver 

而且,我可以通过以下方式在我当前的终端上运行此脚本:

 source startProject.sh 

我想在脚本打开的新终端中执行此操作。

 #!/bin/bash gnome-terminal --working-directory=/home/myname/project -x 'source startProject.sh' 

我也尝试过这个。

 #!/bin/bash gnome-terminal --working-directory=/home/myname/project -x '#!/bin/bash\n source startProject.sh' 

两者都不起作用。 为什么? 我读了其他问题,但我仍然没有得到它。 我是初学者,所以请假设没有经验。

根据我的经验,命令应该是:

 gnome-terminal --working-directory='/home//project' -x bash -c "source startProject.sh; exec bash" 

笔记:

  • --working-directory='/home//project'的路径用单引号括起来,以防它包含一些特殊字符作为空格等。

  • 选项-x表示: 执行 – 终端内部命令行的其余部分。

  • 我们的命令是bash -c "" 。 这意味着我们执行一个新的bash shell,它应该运行一些-c ""

  • 我们有两个分开的(通过分号; == new line

  • 第一个命令source startProject.sh将获取脚本文件 。

  • 第二个命令exec bash有一个含义 – 保持打开当前的gnome-terminal窗口。 还有另一种可行的方法 。 在当前情况下,命令exec用新的过程映像替换当前过程映像 – 换句话说,它将“终止”当前进程并在当前PID下执行新的( bash )。

进一步阅读:

  • 如何从StartupApplications启动gnome-terminal

  • 如何从StartupApplications启动tmux

  • 如何从StartupApps启动gnome-terminal并以root身份执行应用程序

  • 如何从Cron启动gnome-terminal

  • 如何在系统启动时启动带有少量选项卡的gnome-terminal ,每个选项卡具有不同的配置文件