我发现 gnome-terminal 编辑(和创建)配置文件的功能非常有用,可以选择在命令存在后保持终端打开。
(我喜欢使用上下文菜单文件管理器来运行命令以在终端中显示有关文件的信息,在处理时在终端中显示信息等)
我无法在其他终端中找到相同的功能,因此即使它不是默认终端,我也必须安装 gnome-terminal 。
还有其他具有此功能的终端模拟器吗?是否有在给定终端中使用的命令具有相同的效果?
我想用一行(添加为上下文菜单条目)打开终端,运行命令并在保持打开状态的终端窗口中显示信息。示例:在 pantheon 文件(基本操作系统)中,我使用承包商文件添加媒体信息的上下文菜单条目,其中包含一行Exec=xterm -hold -e "mediainfo -i %f"
(根据下面的评论)或Exec=gnome-terminal --window-with-profile=new1 -e "mediainfo -i %f"
.
答案1
您可以在任何终端仿真器中通过简单的权宜之计来实现此目的,即安排程序在未经用户确认的情况下不退出。告诉终端运行terminal_shell_wrapper
这是一个包含类似内容的脚本
#!/bin/sh
if [ $# -eq 0 ]; then "${SHELL:-sh}"; else "$@"; fi
echo "The command exited with status $?. Press Enter to close the terminal."
read line
如果您想按任意键关闭终端,请更改read line
为
stty -icanon; dd ibs=1 count=1 >/dev/null 2>&1
答案2
还有其他终端可以选择保持终端打开,有些通过指定启用该设置的配置文件(就像侏儒终端)和一些带有特定参数的。
Xterm
xterm -hold
来自 $(man xterm):
-hold 打开保留资源,即当 shell 命令完成时,xterm 不会立即销毁其窗口。它将等到您使用窗口管理器销毁/终止窗口,或者您使用发送信号的菜单项(例如,HUP 或 KILL)。
运行xterm --help
,其中一行是
-/+hold turn on/off logic that retains window after exit
要查看其他终端是否有类似的选项,请查看它们的帮助或手册页。
康索尔
(KDE 中默认):
konsole --help
显示这一行:
--hold, --noclose Do not close the initial session automatically when it ends.
因此,用于 Konsole 的命令将包括:
konsole --hold
或者konsole --nonclose
。它不需要引号。它可能是这样的:
Exec=konsole --hold -e mediainfo -i %f
Xfce4-终端
Tab Options:
-x, --execute; -e, --command=command; -T, --title=title;
--working-directory=directory; -H, --hold
所以:
xfce4-terminal -H -e '<command>'
终结者
它有一个类似于 Gnome 终端中的选项,您必须创建一个配置文件 - 例如称为“hold” - 并启用该选项。
运行命令并保持打开状态:
terminator -e '<command>' -p hold
。
答案3
some_command | cat - /dev/tty
...几乎可以与任何东西一起使用。如果您使用的启动器无法正确处理命令中的管道,您可能需要...
sh -c 'some_command | cat - /dev/tty'
您可以发送中断来CTRL+C
终止cat
并结束会话,或者在准备好时关闭终端窗口。
答案4
放在$SHELL
bash 文件的末尾。