我们可以使用MozRepl从telnet退出而不会出错吗?

时间:2014-06-21 00:59:41

标签: error-handling telnet exit mozrepl

基于this answer,我试图想办法退出telnet并返回0

这些不会起作用:

(echo -e "repl.quit()";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\029";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\c]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\e]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\E]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?

问题是:我无法区分成功退出和失败退出......

我认为this question可以链接。

1 个答案:

答案 0 :(得分:2)

在执行通过管道提供的所有命令后,在telnet客户端终止连接之前,需要发送^]字符,这是一个不可打印的组分隔符。大多数echo程序版本都可以使用-e选项生成不可打印的字符。组分隔符是八进制的035(您可以在* nix系统上看到整个ASCII表man 7 ascii。)。因此,整个命令应该如下所示:

$ (echo "content.location.href = 'http://v4.ident.me/'"; sleep 2; echo -e '\035'; sleep 2) | telnet localhost 4242 > /dev/null
$ echo $?
$ 0
相关问题