![urxvt -e 和 xterm -e 之间的区别](https://linux22.com/image/46444/urxvt%20-e%20%E5%92%8C%20xterm%20-e%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
创建可执行文件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 之外,我无法用任何其他东西重现这种行为差异。这到底是怎么回事?