使用终端应用程序的启动器,如何在程序完成后保持终端打开?

Eug*_*e M 27 command-line gnome-terminal launcher

我有一个从应用程序启动器运行的终端命令。这很好用,但有时命令会失败,所以我希望终端保持打开状态,以便我可以看到结果。我怎样才能做到这一点?

Oli*_*Oli 25

假设你的命令被调用mycommand,我会改变我的启动器来运行这个:

gnome-terminal -e "mycommand|less"
Run Code Online (Sandbox Code Playgroud)

如果你想要一个更持久、更简洁的解决方案,打开 gnome-terminal,进入编辑,配置文件首选项,然后单击标题和命令选项卡。将“命令退出时”选项更改为“保持终端打开”。

当您执行命令时,它现在应该在运行时让终端保持打开状态。

编辑:如果你真的不关心终端,你可以只使用 xterm 的保持标志:

xterm -e "mycommand" hold
Run Code Online (Sandbox Code Playgroud)

  • 为了保持默认终端“命令退出时”操作,我建议创建一个新的终端配置文件,将其设置为在命令退出后保持打开状态,并向 gnome-terminal 传递 `--tab-with-profile=PROFILENAME` 选项。通过这种方式,您可以为不同的行为提供许多个人资料:-) (7认同)

Ric*_*way 8

您的启动器正在运行脚本吗?

在脚本的末尾添加

read -p "Press any key to exit > " -n1 junk
echo 
Run Code Online (Sandbox Code Playgroud)

然后您的脚本将等到您选择结束它。


miv*_*ivk 8

在您的 .desktop 快捷方式中,使用此

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Run Code Online (Sandbox Code Playgroud)

脚本完成后,Bash 进程将用新的自身调用替换自身。

如果需要将带引号的参数传递给脚本,则必须对引号进行转义:

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Run Code Online (Sandbox Code Playgroud)