Skip to content
Joachim Ansorg edited this page Jul 5, 2024 · 2 revisions

In POSIX sh, FDs outside 0-9 are undefined.

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

Problematic code:

# Open FD #10 for writing
exec 10> file

Correct code:

Either rewrite the script to only use FDs in the valid range, or switch to a shell that allows a larger range like bash or ksh.

Rationale:

The shell grammar is only required to recognize a single digit before redirections to set the file descriptor, which limits the portable range to 0-9.

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 SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally