我最近看到了这就是答案
Bash本机支持tcp连接作为文件描述符。使用: exec 6<>/dev/tcp/ip.addr.of.server/445回波-e "GET / HTTP/1.0\n“>&6 cat <&6 我使用6作为文件描述符,因为0、1、2是stdin、stdout和stderr。Bash有时会为子进程使用5,因此3、4、6、7、8和9应该是安全的。
我不明白也从未见过的是第一行的exec 6<>。这意味着什么(考虑到6可能是任何通用文件描述符,如引号中所讨论的那样)?特别是,我不记得曾经在bash脚本中看到过<>。
很抱歉,如果这是一个常见问题,但我通常的搜索引擎要么不记录或拒绝搜索<>。
发布于 2014-10-21 21:00:10
这是一个bash扩展,允许在读写模式下打开单个描述符.这通常与套接字一起使用,以允许双向通信(例如读取请求和发送答复)。
来自bash手册页
打开读写文件描述符 重定向算子 n<>word 导致打开名为word展开的文件,以便同时读取和写入文件描述符n;如果没有指定n,则打开文件描述符0。如果文件不存在,则创建该文件。
发布于 2014-10-21 20:28:12
使用"bash重定向“作为我找到的搜索术语,在本例中解释为创建具有给定名称的文件描述符6的方法。将打开的文件遵循<>语法。
因此,看起来bash正在打开I/O的文件描述符,并发送HTTP并将输出转储到stdout。
https://stackoverflow.com/questions/26495540
复制相似问题