Bash 从 /dev/tcp 读取,无需外部二进制文件

Bash 从 /dev/tcp 读取,无需外部二进制文件

我正在尝试使用 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

相关内容