SC3025
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
In POSIX sh, /dev/{tcp,udp} is undefined.
(or "In dash, ... is not supported." when using dash)
Problematic code:
echo foo > /dev/tcp/myhost/1234Correct code:
Rewrite using a tool like netcat (nc):
echo foo | nc myhost 1234Rationale:
/dev/tcp/$host/$port and /dev/udp/$host/$port are recognized in redirections by bash and ksh, and a socket connection is made instead of opening a file. They do not physically exist in /dev.
POSIX sh and dash do not support this, so any such code should be rewritten to use a socket tool explicitly. The obvious candidate is netcat aka nc.
Exceptions:
None
Related resources:
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!