urxvt -e 和 xterm -e 之间的区别

urxvt -e 和 xterm -e 之间的区别

创建可执行文件file1如下:

cat > file1 <<EOF
#!/bin/bash
mutt -e "push '<'"
EOF
chmod +x file1

./file1在现有终端中运行会执行 mutt 并选择第一条消息(这就是该命令<的作用)。运行xterm -e ./file1会打开 xterm,运行 mutt 并选择第一条消息。但是,运行urxvt -e ./file会打开 urxvt,运行 mutt 但会选择最后的消息(没有“push '<'”指令时的默认值)。

关于为什么urxvt -e ./file1会以这种特定方式表现有什么想法吗?


进一步线索:

使用以下文件,xterm -e ./file2两者urxvt -e ./file2都会产生预期的行为。

cat > file2 <<EOF
#!/bin/bash
echo foo
sleep 1
mutt -e "push '<'"
EOF
chmod +x file2

以下文件仍然会导致 xterm 的预期行为,但我已经看到urxvt -e ./file3这两种行为的结果都是不确定的。

cat > file3 <<EOF
#!/bin/bash
echo              
mutt -e "push '<'" 
EOF
chmod +x file3

使用 进行测试gnome-terminal会产生与 相同的行为xterm,因此看起来似乎有问题urxvt,但除了 mutt 之外,我无法用任何其他东西重现这种行为差异。这到底是怎么回事?

相关内容