打开一个新的终端和源脚本
我想编写一个脚本来激活虚拟环境并在新终端中为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
,每个选项卡具有不同的配置文件