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
urxvt -e ./file3
次のファイルはまだxtermの予想される動作を引き起こしますが、両方の動作が未定義の結果を生成することを確認しました。
cat > file3 <<EOF
#!/bin/bash
echo
mutt -e "push '<'"
EOF
chmod +x file3
muttでテストするとgnome-terminal
muttと同じ動作が発生するため、xterm
何かが間違っているように見えますが、urxvt
mutt以外のものではこれらの動作の違いを再現できません。正確に何が起こっているのでしょうか?