diff --git a/SC2278.md b/SC2278.md new file mode 100644 index 0000000..89e4b50 --- /dev/null +++ b/SC2278.md @@ -0,0 +1,32 @@ +## $0 can't be assigned in Ksh (but it does reflect the current function). + +### Problematic code: + +```sh +#!/bin/ksh +$0=myname +echo "Usage: $0 --help" +``` + +### Correct code: + +```sh +#!/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! \ No newline at end of file