如何在不关闭终端的情况下运行脚本?

我在文件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" 

这样做如下:

  1. 打开gnome-terminal
  2. 执行脚本script.sh
  3. 脚本完成后显示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" 

这样做如下:

  1. 打开xterm
  2. 执行脚本script.sh
  3. 脚本完成后显示bash提示符。

您可以通过关闭窗口退出xterm窗口或在bash提示符下键入exit 。 或者您可以按要求键入更多命令。

 xterm -e bash --rcfile bla.sh 

这将在新窗口中运行脚本,甚至可以在窗口完成后控制窗口。

但是新窗口不会正常加载~/.bashrc ,因为我们运行了bla.sh 这可以通过推杆来弥补

 . ~/.bashrc 

bla.sh的顶部