我正在寻找一种在 fish shell 中打开 TCP 连接的方法。
在 bash 中,我可以执行以下操作来打开 TCP 连接。这是在未安装 telnet 时进行的快速 telnet 类型测试。
$ echo > /dev/tcp/127.0.0.1/80 && echo up
up
连接失败
aaron@aaron-pc: ~
$ echo > /dev/tcp/127.0.0.1/81 && echo up
bash: connect: Connection refused
bash: /dev/tcp/127.0.0.1/81: Connection refused
在鱼方面我尝试了以下方法。
echo > /dev/tcp/127.0.0.1/80; and echo up
An error occurred while redirecting file '/dev/tcp/127.0.0.1/80'
open: No such file or directory
我猜测 bash 具有tcp
在需要时创建设备的功能,而 fish 使用了其他机制。
以下是有关 bash 的一些文档和/dev/tcp
https://www.linuxjournal.com/content/more-using-bashs-built-devtcp-file-tcpip
https://stackoverflow.com/a/19866239/619760
答案1
fish 不会这样做。您需要使用netcat
专为网络连接设计的工具,或者使用提供文件级访问远程网络端点的操作系统(例如 GNU Hurd 的socketio
转换器)。