问题描述
我需要使用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"
解决方法
尝试一下:
telnet_output="$({ sleep 1; echo $'\e'; } | telnet $server $port 2>&1)"
printf "Output is\n%s\n" "$telnet_output"
echo $'\e'
向telnet
发送一个转义字符以终止它。