error-handling - 可以使用MozRepl从telnet正常退出吗?

标签 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可以链接。

最佳答案

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

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

关于error-handling - 可以使用MozRepl从telnet正常退出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337292/

相关文章:

php - Laravel 3、mysql 或 redis down 显示空白屏幕而不是重定向到 500 错误屏幕

c - 通过 cURL(或 FTP)将值传递给 C 二进制文件

c - 程序无限循环

c# - 使用Application.Exit退出应用程序而不显示GUI

java - 捕获 OutOfMemoryError 但不增加堆大小

sql - 没有存储过程的错误返回

php - 字段 'xxx' 没有默认值

telnet - 等待expect脚本中的提示

python - Twisted Matrix 和 telnet 服务器实现

python - 如果从命令行运行,我如何退出 Python,否则打印堆栈跟踪