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

$0 can't be assigned this way, and there is no portable alternative.

Problematic code:

#!/bin/sh
$0=myname

Correct code:

$0 can not be changed in a portable way.

Rationale:

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

There is no portable way to do this. Write around it, or switch to Bash.

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