[英]can we exit without error from telnet with MozRepl?
基於此答案 ,我正在嘗試找出一種從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 $?
問題是:我無法區分成功退出和失敗退出...
我認為這個問題可以聯系在一起。
您需要發送^]
字符,這是不可打印的組分隔符,您的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.