I am looking for a way to open TCP connections in fish shell.

In bash, I can do the following to open a TCP connection. This is quick telnet type test when telnet is not installed.

$ echo > /dev/tcp/127.0.0.1/80  && echo up
up

A failed connection

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

In fish I tried the following.

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

I guess the bash has that functionality to create a tcp device when it needs it and fish uses some other mechanism.

Here is some of the documentation on bash and /dev/tcp https://www.linuxjournal.com/content/more-using-bashs-built-devtcp-file-tcpip https://stackoverflow.com/a/19866239/619760

up vote 2 down vote accepted

fish does not do this. You will need to use netcat or a tool designed for network connections, or use an operating system which provides file-level access to remote network endpoints (such as GNU Hurd's socketio translator).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.