Skip to content
Vidar Holen edited this page Apr 11, 2025 · 1 revision

In POSIX sh, test -R and namerefs in general are undefined.

Problematic code:

if [ -R foo ]
then
  ..
fi

Correct code:

POSIX sh has no concept of namerefs. Rewrite your logic to not depend on them, or switch to Bash or Ksh.

Rationale:

[ -R name ] is used to check whether name is a nameref. Since POSIX sh has no namerefs, either use a shell that does, or rewrite to not need namerefs.

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