TIL: #bash provides pseudo devices for TCP and UDP connections:
echo "hello" > /dev/udp/127.0.0.1/1337
or
exec 5<>/dev/tcp/www.google.com/80
echo -e "GET / HTTP/1.0\n" >&5
cat <&5
I'm baffled how I've never discovered that until today.
@fribbledom Special handling of certain file names is for redirections, and it is a Bash feature.
"Bash handles several filenames specially when they are used in redirections, as described in the following table. If the operating system on which Bash is running provides these special files, bash will use them; otherwise it will emulate them internally..."
https://www.gnu.org/software/bash/manual/html_node/Redirections.html
@sajith @fribbledom @jasper @nik can confirm it's bash, does not work in #zsh… unfortunately… 😢
@fribbledom @nik starting bash, your second command works, but `ls /dev/tcp` or `/dev/udp` yields nothing, maybe that's why you didn't notice?
Seems like a rather irregular thing to do tbh.. But then i wouldn't know.