Skip to content
Joachim Ansorg edited this page Nov 12, 2021 · 2 revisions

$0 can't be assigned in Ksh (but it does reflect the current function).

Problematic code:

#!/bin/ksh
$0=myname
echo "Usage: $0 --help"

Correct code:

#!/bin/ksh
myname() {
  echo "Usage: $0 --help"
}
myname

Rationale:

You appear to be trying to assign a new value to $0 in Ksh.

This is not possible. However, $0 will reflect the current function name, so if you wrap your code in a function with your chosen name, you can have $0 expand to it.

Exceptions:

If you instead wanted to compare the value of $0, use a comparison like [ "$0" = "myname" ].

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