urxvt 不工作而 xterm 适用于同一命令

urxvt 不工作而 xterm 适用于同一命令

xterm -e 'sudo iotop -aP'工作
urxvt -e 'sudo iotop -aP'不工作

top命令对两者都有效

知道发生了什么吗?
如何让它发挥作用?

答案1

它可以在 xterm 中工作,因为 xterm 多次尝试执行给定的命令或通过execvp 调用。在第一种情况下,将后面的所有标记-e视为单个字符串,在后一种情况下,标记必须是分开(对于 execvp 调用)。这是它的接口的副作用luit,这可能不是很明显手册页提及:

当使用区域设置过滤器时,例如,使用-e选项或外壳,xterm首先尝试通过该过滤器传递控制权。如果失败了,xterm将在没有区域设置过滤器的情况下重试。 Xterm 在重试之前警告失败。

但看着源代码会让它更清楚(command_to_exec是用于的字符串数组-e选项, 尽管command_to_exec_with_luit是第一次尝试的组合命令字符串xterm)。

大多数终端模拟器不这样做。

答案2

删除引号有效

urxvt -e sudo iotop -aP

相关内容