it-swarm.cn

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

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

24
Eugene M

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

gnome-terminal -e "mycommand|less"

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

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

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

xterm -e "mycommand" hold
23
Oli

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

在脚本末尾添加

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

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

8
Richard Holloway

在您的.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"
8
mivk

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

成功或壳牌

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

将此 file 放在某个位置,例如〜/ bin,然后在启动器中使用“ success-or-Shell your original command”。

3
Roger Pate

使用watch命令。

格式:watch -n60 myCommandwatch -n60 "my command string"

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

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

我喜欢gnome-terminal -e "mycommand|less"的可接受答案,因为我正在运行Xubuntu,默认情况下使用其他终端。

0
Gabriel Staples

尝试右键单击启动器并输入属性。

应该有一个选项可以使终端窗口保持打开状态 enter image description here

在.desktop文件中,应该有条目X-KeepTerminal=true

0
nathanfranke

此答案 给出到目前为止我所见过的最好的答案,可以做自己想做的事情。他们建议使用要执行的命令来编写脚本,并将其与--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
0
Brian Vandenberg