On 02/27/2009 09:28 AM, John Summerfield wrote:
> John McKown wrote:
>> First: using redirection to write to or read from an IP port
>>
>> command >/dev/tcp/${HOST}/${PORT}

> but how does one carry on a sensible conversation? I can send stuff to
> sendmail, but how do I get its responses?

See bftpget (an ftp client with bash-builtins only) in
ftp://ftp.heise.de/pub/ct/listings/0702-178.zip
(from an article in a german journal which is unfortunately not freely
available on the net:
http://www.heise.de/kiosk/archiv/ct/2007/2/178_kiosk).

> 16:23 [sum...@bobtail ~]$ ls -l /dev/tcp/ns
> ls: /dev/tcp/ns: No such file or directory
> 16:24 [sum...@bobtail ~]$ ls -l /dev/tcp/ns:22
> ls: /dev/tcp/ns:22: No such file or directory

AFAIK, these are pseudo files handled internally by bash, so they won't
appear in the file system.

>> <( command ) and >( command )
[snip]
>> via a /dev/fd/n.

Bash meanwhile implements process substitution by means of /dev/fd,
optionally by means of named pipes (FIFOs).

> I think this sort of thing is a bit OS-dependent. It works with some
> (2.4 and later I suspect) Linux kernels, likely not with *BSD, Solaris
> and such, but I don't have any alternative systems to test on.

Linux implements /dev/fd as a symlink to /proc/self/fd.
I found /dev/fd/... available on Solaris 10 (on Sparc) implemented with
character devices.

>   (echo >&5) 5>tempfile
> where tempfile could be something above. I've used this sometimes in
> scripts: think of any kind of program that produces more than one report
> and you will find a use.

Redirection of arbitrary file descriptors is very handy, especially in
combination with the exec shell builtin. E.g., configure from autoconf
makes heavy use of it.

Steffen

Linux on System z Development

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Erich Baier
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to