从shell脚本打开gnome-terminal并保持窗口打开

时间:2015-10-22 15:47:31

标签: linux bash shell gnome-terminal

我尝试编写一个脚本,通过将我想要打开的项目(目录)的名称作为参数来设置我的编程环境

例如: ./ my_script.sh sample_app

到目前为止,这是脚本:

#!/bin/bash

wmctrl -s 0
sublime &
sleep 2

wmctrl -s 1
google-chrome &
sleep 2

wmctrl -s 2
Dir="$echo /home/biTNumb/Projects/ruby/workspace/$1"
echo $Dir
gnome-terminal --window-with-profile=Guard -e ls &
#gnome-terminal -e cd /home/biTNumb/Projects/ruby/workspace/$1 && bundle exec guard &
#gnome-terminal -e cd /home/biTNumb/Projects/ruby/workspace/$1 && rails s &

脚本执行时出现问题:

gnome-terminal --window-with-profile=Guard -e ls &

我收到消息The child process exited normally with status 0.

The child process exited normally with status 0.

我之后无法使用终端(我只能将其关闭),并且该消息会隐藏输出的某些部分。然而,我已经创建了一个配置文件并将何时命令退出下拉菜单设置为'保持终端打开' ......

** 我将评论留在了剧本中,这样您就可以了解我想要做的事情

1 个答案:

答案 0 :(得分:0)

要在同一 gnome-terminal 窗口中执行多个命令,请使用分号;作为分隔符,如下所示:

gnome-terminal -- bash -c "command 1; command 2; ...; bash;"

最后一个命令bash启动命令行解释器,以便终端不会退出(使用$shell代替bash以获得更通用的解决方案)。< / p>

这样,当命令退出时,您不需要使用选项保持终端打开来定义配置文件,而您将不会收到消息The child process exited with status 0(隐藏某些部分输出)。

以下是您可能会写的内容(我使用反斜杠\来分割行):

gnome-terminal -- bash -c \
" ls ;\
cd /home/biTNumb/Projects/ruby/workspace/$1 && bundle exec guard ;\
cd /home/biTNumb/Projects/ruby/workspace/$1 && rails s;\
$bash;"