从 shell 脚本打开 gnome-terminal 并按住 window 打开

Open gnome-terminal from shell script and hold window open

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

例如:./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/"
echo $Dir
gnome-terminal --window-with-profile=Guard -e ls &
#gnome-terminal -e cd /home/biTNumb/Projects/ruby/workspace/ && bundle exec guard &
#gnome-terminal -e cd /home/biTNumb/Projects/ruby/workspace/ && rails s &

脚本执行时出现问题:

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

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

之后我无法使用终端(我只能关闭它)并且该消息隐藏了部分输出。然而,我已经创建了一个配置文件并将 When command exits 下拉菜单设置为 'Hold the terminal open'...

** 我在脚本中留下了评论,这样您就可以了解我正在尝试做什么

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

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

最后一个命令 bash 启动命令行解释器,这样终端就不会在最后退出(使用 $shell 而不是 bash 以获得更通用的解决方案) .

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

下面是你可能会写的(我使用反斜杠 \ 来分割行):

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