我正在尝试使用 bash tcp 套接字读取文件,
所以我在一台主机上,
nc -l 8888 < /etc/passwd
在另一台机器上,
echo </dev/tcp/127.0.0.1/8888
但它没有按预期读取文件,我得到了一个空行。
我知道cat < /dev/tcp/xxx/xxxx
可行,但是我可以在没有外部二进制文件的情况下做到这一点吗?
编辑
所以我尝试了$()
语法,
# echo $(</dev/tcp/127.0.0.1/8888) > file
bash: /dev/tcp/127.0.0.1/8888: No such file or directory
答案1
您可以使用while
循环:
while IFS= read -r line; do
printf '%s\n' "$line"
done < /dev/tcp/localhost/8888