使用终端应用程序的启动器,如何在程序完成后保持终端打开?
我有一个终端命令,我从应用程序启动器运行。 这很好用,但有时候命令会失败,所以我希望终端保持打开状态,这样我才能看到结果。 我怎样才能做到这一点?
假设您的命令名为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,它默认使用不同的终端。