提问人:cpd1 提问时间:10/5/2023 最后编辑:cpd1 更新时间:10/5/2023 访问量:46
使用 grep 在 telnet 连接的输出中查找单词
use grep to find a word in the output from telnet connection
问:
我想使用 telnet 连接到系统并检查是否在响应中。foreign
我正在尝试......
echo quit | telnet 192.0.0.1 443 | grep -q "foreign"
因为成功的连接意味着在字符串中找到了“外来”。这是因为在输出中我得到了类似的东西......
Trying 192.0.0.1
Connected to 192.0.0.1
Connection closed by foreign host
但是,如果我检查,我会得到一个指示,它无法找到该单词。我的猜测是这是由于多行输出。echo $?
1
有没有办法处理这个问题,所以我从?0
echo $?
必须通过终端完成 - 没有脚本等。
而且必须是telnet
答:
1赞
Gilles Quénot
10/5/2023
#1
我会做什么:
{ sleep 1; echo quit; } | telnet 192.0.0.1 443 2>&1 | grep -q "foreign"
或与:bash
{ sleep 1; echo quit; } | telnet 192.0.0.1 443 |& grep -q "foreign"
重试后:
until [[ $out == *foreign* ]]; do
out=$({ sleep 1; echo quit; } | telnet 192.0.0.1 443 |& grep "foreign")
sleep 1
done
评论
0赞
cpd1
10/5/2023
会试一试 - 谢谢!
0赞
Gilles Quénot
10/5/2023
添加了循环方式。
0赞
cpd1
10/5/2023
谢谢!我意识到我在语法方面有问题,所以第一个可能有效,但在必要时也有帮助。
评论
netcat
是比 更好的测试网络连接的工具。telnet