Sé que /dev/tcp/<host>/<port>es un camino mágico manejado específicamente por algunos proyectiles en las redirecciones. Pero según man bash:
Si el sistema operativo en el que se ejecuta bash proporciona estos archivos especiales, bash los usará; de lo contrario los emulará internamente [...]
En el cuadro de Linux que estoy usando en este momento, el /dev/tcparchivo especial no está presente, por lo que Bash lo emulará . Pero, ¿existe realmente un sistema similar a Unix que proporcione el /dev/tcparchivo especial con la misma semántica que el que admite Bash?
devices
tcp
character-special-files
Sylvain Leroux
fuente
fuente

/deves un tmpfs en los linux actuales, y estaba en la partición raíz en los más antiguos. Por eso es imposible actualmente. Podría hacerse posible fácilmente con una extensión sysfs o procfs (ambos fs son muy flexibles y similares (en realidad, probablemente nadie sabe por qué no son iguales)), nadie lo hace hoy, pero podría hacerse en alrededor de 100 líneas de código.Respuestas:
Creo que la documentación de Bash es algo engañosa sobre este tema. Mirando el código, incluso volviendo a la versión 2.04 donde se introdujeron las redirecciones de red,
/dev/tcpy/dev/udpfunciona de la siguiente manera:configurescript verifica si se admiten varias funciones de red; si es así, si las redirecciones de red están habilitadas (que es el caso por defecto), el código de red interno está integrado;/dev/tcpy/dev/udp(en el formato correcto) se maneja internamente; de lo contrario, se genera una advertencia (“/ dev / (tcp | udp) / host / port no es compatible sin conexión en red”) y Bash intenta abrir la ruta dada en el sistema;Esto se reduce a:
/dev/tcpy/dev/udpsiempre se manejarán internamente;/dev/(tcp|udp)/host/port, se utilizará, de lo contrario con toda probabilidad la redirección fallará;/dev/(tcp|udp)/host/port, se utilizará, de lo contrario, con toda probabilidad, la redirección fallará./dev/tcpexiste en algunos sistemas, pero que yo sepa, ninguno admite la misma abstracción que Bash. En Solaris,/dev/tcpse usa con landdherramienta para consultar y cambiar la configuración de red. En XTI (vea también Open Group si es miembro), lat_openfunción se puede usar/dev/tcppara abrir una conexión TCP, pero no usa la configuración basada en rutas, hay una estructura de datos separada para especificar el host de destino y puerto (y otros parámetros).fuente