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


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

, ,

问题描述

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

最佳方案

假设您的命令名为mycommand,我将更改启动器以运行此命令:

gnome-terminal -e "mycommand|less"

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

现在,当您执行命令时,它将在运行某些命令时使终端保​​持打开状态。

编辑:如果您不太在意终端,则可以使用xterm的hold标志:

xterm -e "mycommand" hold

次佳方案

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

在脚本末尾添加

read -p "Press any key to exit > " -n1 junk
echo 

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

第三种方案

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

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"

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

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

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"

第四种方案

与其他答案略有不同的方法:运行命令,如果失败,则生成一个shell。这样,您不必将终端保持打开状态(这不会区分命令是成功还是失败),并且您可能会发现该Shell在失败中特别有用。要关闭它,只需使用Ctrl-D(EOF),”exit”,Alt-F4(或您的窗口管理器用来关闭窗口的任何东西),等等。

success-or-shell

#!/bin/sh
[ $# -eq 0 ] && {
  echo "$(basename $0): no command" >&2
  exit 1
}
"$@" || {
  echo "failed: $?"
  exec $SHELL
}

将此file放在某个位置,例如〜/bin,然后在启动器中使用“ success-or-shell您的原始命令”。

参考资料

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