Eugene M Asked: 2010-09-01 04:19:52 +0800 CST2010-09-01 04:19:52 +0800 CST 2010-09-01 04:19:52 +0800 CST 使用终端应用程序的启动器,如何在程序完成后保持终端打开? 772 我有一个从应用程序启动器运行的终端命令。这很好用,但是有时命令会失败,所以我希望终端保持打开状态,以便我可以看到结果。我怎样才能做到这一点? command-line gnome-terminal launcher 8 个回答 Voted Best Answer Oli 2010-09-01T04:32:27+08:002010-09-01T04:32:27+08:00 假设你的命令被调用mycommand,我会改变我的启动器来运行它: gnome-terminal -e "mycommand|less" 如果您想要一个更永久、或许更清洁的解决方案,请打开 gnome-terminal,转到编辑、配置文件首选项,然后单击标题和命令选项卡。将“命令退出时”选项更改为“保持终端打开”。 当您执行命令时,它现在应该在某些东西运行时使终端保持打开状态。 编辑:如果你真的不关心终端,你可以使用 xterm 的保持标志: xterm -e "mycommand" hold Richard Holloway 2010-09-01T04:44:14+08:002010-09-01T04:44:14+08:00 您的启动器正在运行脚本吗? 在脚本末尾添加 read -p "Press any key to exit > " -n1 junk echo 然后您的脚本将等到您选择结束它。 mivk 2013-01-08T08:26:45+08:002013-01-08T08:26:45+08:00 在您的 .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" Roger Pate 2010-09-02T12:34:06+08:002010-09-02T12:34:06+08:00 与其他答案略有不同的方法:运行您的命令,如果失败,则生成一个 shell。这样您就不必让终端保持打开状态(它不区分命令成功或失败),并且您可能会发现该 shell 在失败时特别有用。要关闭它,只需使用 Ctrl-D (EOF)、“exit”、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”。 Brian Vandenberg 2015-01-24T09:14:04+08:002015-01-24T09:14:04+08:00 这个答案给出了我迄今为止看到的做你想做的最好的答案。他们建议使用 --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 Gabriel Staples 2017-09-02T18:11:22+08:002017-09-02T18:11:22+08:00 使用watch命令。 格式:watch -n60 myCommand, 或watch -n60 "my command string" 指定调用myCommand之间等待的-n秒数;例如:上述命令将永远每 60 秒调用一次myCommand 。 如果命令是多个单词,请将其放在双引号内:"my command string". 假设您想要一个显示磁盘使用情况并保持打开状态以供读者查看的启动器。我只需在 Launcher: 中使用这个命令,它现在每 60 秒 watch -n60 "df -h"调用一次。df -h 我喜欢这个而不是接受的答案,gnome-terminal -e "mycommand|less"因为我正在运行 Xubuntu,它默认使用不同的终端。 nathanfranke 2019-05-05T11:15:37+08:002019-05-05T11:15:37+08:00 尝试右键单击启动器并输入属性。 应该有一个选项可以使终端窗口保持打开状态 在 .desktop 文件中,应该有条目X-KeepTerminal=true Beejor 2022-07-13T18:44:35+08:002022-07-13T18:44:35+08:00 无需指定终端,或更改启动器设置中的任何内容。只需添加 sleep 36500d 到一个脚本的结尾,这让你有 100 年的时间来审查输出。
假设你的命令被调用
mycommand
,我会改变我的启动器来运行它:如果您想要一个更永久、或许更清洁的解决方案,请打开 gnome-terminal,转到编辑、配置文件首选项,然后单击标题和命令选项卡。将“命令退出时”选项更改为“保持终端打开”。
当您执行命令时,它现在应该在某些东西运行时使终端保持打开状态。
编辑:如果你真的不关心终端,你可以使用 xterm 的保持标志:
您的启动器正在运行脚本吗?
在脚本末尾添加
然后您的脚本将等到您选择结束它。
在您的 .desktop 快捷方式中,使用此
脚本完成后,Bash 进程将用新的自身调用替换自身。
如果您需要将带引号的参数传递给脚本,则必须转义引号:
与其他答案略有不同的方法:运行您的命令,如果失败,则生成一个 shell。这样您就不必让终端保持打开状态(它不区分命令成功或失败),并且您可能会发现该 shell 在失败时特别有用。要关闭它,只需使用 Ctrl-D (EOF)、“exit”、Alt-F4(或您的窗口管理器用来关闭窗口的任何工具)等。
成功或外壳
将此文件放在某个地方,例如 ~/bin,然后在启动器中使用“success-or-shell your original command”。
这个答案给出了我迄今为止看到的做你想做的最好的答案。他们建议使用 --init-file 参数(特定于 bash,但您可能对 csh/tcsh/zsh 等执行相同操作)制作一个带有执行命令的脚本并使用它:
...并将其执行为:
使用
watch
命令。格式:
watch -n60 myCommand
, 或watch -n60 "my command string"
-n
秒数;例如:上述命令将永远每 60 秒调用一次myCommand 。"my command string"
.假设您想要一个显示磁盘使用情况并保持打开状态以供读者查看的启动器。我只需在 Launcher: 中使用这个命令,它现在每 60 秒
watch -n60 "df -h"
调用一次。df -h
我喜欢这个而不是接受的答案,
gnome-terminal -e "mycommand|less"
因为我正在运行 Xubuntu,它默认使用不同的终端。尝试右键单击启动器并输入属性。
应该有一个选项可以使终端窗口保持打开状态
在 .desktop 文件中,应该有条目
X-KeepTerminal=true
无需指定终端,或更改启动器设置中的任何内容。只需添加
sleep 36500d
到一个脚本的结尾,这让你有 100 年的时间来审查输出。