从bash脚本中替代Cat?

时间:2013-12-18 14:52:39

标签: arrays linux bash

我遇到以下问题。

exec 3<>/dev/tcp/$1/37491

echo -ne 060e2b3 00$hexdec$cmdhex | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' >&3

cat <&3

我有一个服务器,我发送一个十六进制字符串与端口/ tcp连接。但是因为我通过终端使用putty我的第一个问题是XML响应总是说PuTTY并且它不会逃脱。我还需要将回复有时放回数组中,我已经尝试了

array=`cat <&3`

echo "Array items:"
for item in ${array[*]}
do
    printf "   %s\n" $item
done

并且我相信因为猫没有正常退出它只是保持打开阵列没有完成?

感谢您的高级帮助

2 个答案:

答案 0 :(得分:2)

您需要指定超时吗?

while read -t 5 line <&3; do 
    echo "$line"
    (( Lines++ ))
done
exec 3>&-

答案 1 :(得分:0)

也许您需要关闭TCP / IP套接字?

exec 3>&-