Skip to content
Vidar Holen edited this page Sep 8, 2020 · 1 revision

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

Related resources:

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

ShellCheck

Each individual ShellCheck warning has its own wiki page like S001. Use GitHub "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally