问题描述
我在文件bla.sh
中有一个脚本,它是可执行的。单击它时,将执行脚本并关闭窗口。我希望窗户保持开放状态。
类似于Windows中的命令cmd /k** command
。
附:我不想使用pause
,但我希望能够在执行脚本后编写更多命令。
最佳解决方法
将$SHELL
放在脚本的末尾:
一个小缺陷:由于gnome-terminal
未运行bash
作为它的shell,它会将其视为一个应用程序并在您尝试关闭终端时显示警告:
There is still a process running in this terminal
Closing the terminal will kill it.
我发现没有好办法隐藏这个警告。如果需要,可以通过运行完全禁用它:
gconftool --set /apps/gnome-terminal/global/confirm_window_close --type boolean false
如果您使用的是xterm
而不是gnome-terminal,则不会发生这种情况。它应该打扰你。
次佳解决方法
使用Gnome终端
使用gnome-terminal附加;在命令字符串末尾使用bash并使用-c选项调用脚本。例如:
gnome-terminal -e "bash -c ~/script.sh;bash"
这样做如下:
-
打开gnome-terminal
-
执行脚本script.sh
-
脚本完成后显示bash提示符。
您可以通过关闭窗口退出gnome-terminal窗口,或在bash提示符下键入exit。或者您可以按要求键入更多命令。
第三种解决方法
如果您有权访问该脚本,则最后还可以添加以下代码:
read
该代码将在关闭前等待输入,因此终端将保持打开状态,直到您按Enter键。
第四种方法
如果您使用的是xterm
,请使用-hold
。
第五种方法
使用bash
的--init-file
选项和临时管道:
bash --init-file <(echo './<script_name>')
例如:
bash --init-file <(echo './bla.sh')
第六种方法
使用xterm
并在命令字符串末尾附加;bash
。例如:
xterm -e "bash ~/script.sh;bash"
这样做如下:
-
打开xterm
-
执行脚本
script.sh
-
脚本完成后显示bash提示符。
您可以通过关闭窗口退出xterm窗口,或在bash提示符下键入exit
。或者您可以按要求键入更多命令。