1 SC3022
Vidar Holen edited this page 2020-09-07 20:38:00 -07:00

In POSIX sh, named file descriptors is undefined.

(or "In dash, ... is not supported." when using dash)

Problematic code:

exec {n}> "$output"
echo "Your fd is $n"

Correct code:

There is no simple, mechanical alternative for POSIX sh, but you can either switch to a shell that does support this (like bash), or hard code (or eval) a specific file descriptor.

Rationale:

The syntax for opening an arbitrary file descriptor and assigning it to a variable for later use is a bash and ksh extension. It does not work on POSIX sh or dash.

Exceptions:

None

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!