如何在Shell脚本中将telnet命令的输出捕获到一个变量中

3

我需要在远程服务器上使用Shell脚本运行telnet命令并捕获输出。当我执行下面的命令时,它没有完成,而是被挂起了。请问如何在Shell脚本中终止或超时telnet命令一旦它被执行。

telnet_output=`telnet $server $port`
echo "Output is $telnet_output"

我也尝试将其写入文件中,但在远程服务器上执行时仍然会卡住。

opfile="telop.log"
telnet_output=`telnet $server $port | tee $opfile`
op=`cat $opfile`
echo "$op"
1个回答

0

试试这个:

telnet_output="$({ sleep 1; echo $'\e'; } | telnet $server $port 2>&1)"
printf "Output is\n%s\n" "$telnet_output"

echo $'\e' 命令发送一个转义字符给 telnet 以终止它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接