如何在不关闭终端的情况下运行脚本?
我在文件bla.sh
有一个脚本,它是可执行的。 单击它时,将执行脚本并关闭窗口。 我希望窗户保持开放状态 。
类似于Windows中的命令cmd /k** command
。
PS我不想使用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 './')
例如:
bash --init-file <(echo './bla.sh')
使用xterm
和append ;bash
命令字符串末尾的;bash
工作。 例如:
xterm -e "bash ~/script.sh;bash"
这样做如下:
- 打开xterm
- 执行脚本
script.sh
- 脚本完成后显示bash提示符。
您可以通过关闭窗口退出xterm窗口或在bash提示符下键入exit
。 或者您可以按要求键入更多命令。
xterm -e bash --rcfile bla.sh
这将在新窗口中运行脚本,甚至可以在窗口完成后控制窗口。
但是新窗口不会正常加载~/.bashrc
,因为我们运行了bla.sh
这可以通过推杆来弥补
. ~/.bashrc
在bla.sh
的顶部