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

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

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

 gnome-terminal -e "mycommand|less" 

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

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

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

 xterm -e "mycommand" hold 

在.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" 

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

在脚本结束时添加

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

然后你的脚本会等到你选择结束它。

与其他答案略有不同的方法:运行您的命令,如果失败,则生成一个shell。 这样您就不必保持终端打开(不区分命令成功或失败),并且您可能会发现shell在失败时特别有用。 要关闭它,只需使用Ctrl-D(EOF),“退出”,Alt-F4(或窗口管理器用于关闭窗口的任何内容)等。

成功,或壳

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

将此文件放在某处,例如〜/ bin,然后在启动器中使用“success-or-shell your original command”。

这个答案给出了我迄今为止所做的最好的答案。 他们建议使用命令执行脚本并使用–init-file参数(特定于bash,但你可以对csh / tcsh / zsh等执行相同操作):

 #!/bin/bash --init-file commands to run 

…并执行它:

 xterm -e /path/to/script # or gnome-terminal -e /path/to/script # or the-terminal -e bash --init-file /path/to/script/with/no/shebang 

使用watch命令。

格式: watch -n60 myCommand ,或者watch -n60 "my command string"

  • -n指定调用myCommand之间等待的秒数; 例如:上面的命令将每隔60秒调用一次myCommand ,永远。
  • 如果命令是多个单词,请将其放在双引号内: "my command string"

假设您需要一个显示磁盘使用情况的启动器,并保持打开以供读者查看。 我只是在Launcher中使用这个命令:
watch -n60 "df -h" ,现在每隔60秒调用df -h

我喜欢这个接受gnome-terminal -e "mycommand|less"答案,因为我正在运行Xubuntu,它默认使用不同的终端。