我尝试编写一个脚本,通过将我想要打开的项目(目录)的名称作为参数来设置我的编程环境
例如: ./ 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.
:
我之后无法使用终端(我只能将其关闭),并且该消息会隐藏输出的某些部分。然而,我已经创建了一个配置文件并将何时命令退出下拉菜单设置为'保持终端打开' ......
** 我将评论留在了剧本中,这样您就可以了解我想要做的事情
答案 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;"