== An interesting Bourne shell limitation Presented in illustrated form, on at least Solaris 8, FreeBSD, and OpenBSD: $ exec 9>/dev/null $ exec 10>/dev/null exec: 10: not found (And the shell exits.) The genuine Bourne shell only allows redirection to (or from) single-digit file descriptors; if you give multiple digits, it instead gets parsed as '_exec 10 >/dev/null_'. (The limitation has been faithfully copied by at least some Bourne shell reimplementations and was retained in ksh, but bash has dispensed with it, so you won't see this behavior on (most) Linux machines.) This limitation is implicitly in the [[V7 sh manpage http://minnie.tuhs.org/UnixTree/V7/usr/man/man1/sh.1.html]], which says about redirection: > If one of the above is preceded by a ~~digit~~ then the file > descriptor created is that specified by the digit (instead of the > default 0 or 1). In the grand tradition of reading Unix manpages, using the singular 'digit' means that multiple ones aren't allowed. This wording was carried on into the Solaris _sh_ manpage, but not the FreeBSD one. The FreeBSD situation is interesting, since I believe the FreeBSD shell was rewritten from scratch; clearly the people doing the rewrite knew about (and decided to preserve) the limitation, but then they didn't document it. (One might argue that the FreeBSD usage of '_[n]> file_' in the manpage implies that '_n_' can only be a single digit, but I think that the ice is thin, if only because they use things like '_[n1]<&n2_'.)