当前位置: 首页>>技术教程>>正文


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

,

问题描述

我在文件bla.sh中有一个脚本,它是可执行的。单击它时,将执行脚本并关闭窗口。我希望窗户保持开放状态。

类似于Windows中的命令cmd /k** command

附:我不想使用pause,但我希望能够在执行脚本后编写更多命令。

最佳解决方法

$SHELL放在脚本的末尾:

command-line,ubuntu

一个小缺陷:由于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 './<script_name>')

例如:

bash --init-file <(echo './bla.sh')

第六种方法

使用xterm并在命令字符串末尾附加;bash。例如:

xterm -e "bash ~/script.sh;bash"

这样做如下:

  1. 打开xterm

  2. 执行脚本script.sh

  3. 脚本完成后显示bash提示符。

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1528.html,未经允许,请勿转载。