我不知道为什么我的问题在发表评论后没有得到跟进。但我试图使用
exec 3>& - 退出猫<& 3但仍然没有
我也尝试了猫<& 3 3>& - 仍然无法工作
exec 3<>/dev/tcp/$1/37491
echo -ne 060e2b3400$hexdec$cmdhex | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' >&3
cat <&3
exec 3>&-
套接字保持打开状态。
答案 0 :(得分:1)
cat
之后无法添加任何内容,因为cat
正在阻塞,等待通过套接字获得更多输入。如果您可以安排从另一个进程关闭套接字,cat
将退出。
以下内容可能有效:
exec 3<>/dev/tcp/$1/37491
echo -ne 060e2b3400$hexdec$cmdhex | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' >&3
( cat <&3; echo "Socket was closed" ) &
sleep 10
exec 3>&-
cat
将在子shell中在后台运行,阻塞直到套接字关闭。睡眠10秒后,您的脚本将关闭套接字,您应该看到输出“Socket已关闭”。