我不知道为什么我的问题在发表评论后没有得到跟进。但是我尝试使用
执行 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>&-
套接字保持打开状态。
您在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
将在后台的子外壳中运行,阻塞直到套接字关闭。休眠 10 秒后,脚本将关闭套接字,您应该看到输出"套接字已关闭"。