123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- unset a b
- #
- readonly a=A
- b=B
- readonly b
- # readonly on already readonly var is harmless:
- readonly b a
- readonly | grep '^readonly [ab]='
- # this should work:
- export a b
- export -n a b
- echo Ok:$?
- env | grep -e^a= -e^b= # shows nothing
- echo
- # these should all fail (despite the same value being assigned)
- # bash does not abort even in non-interactive more (in script)
- # ash does, using subshell to continue
- true; (a=A)
- echo Fail:$?
- true; (readonly a=A)
- echo Fail:$?
- echo
- # in bash, assignment in export fails, but export succeeds! :)
- # we don't mimic that!
- true; (export a=Z)
- echo Fail:$?
- #env | grep '^a='
- #echo "^^^a is exported"
- export -n a # undo that bashism, if it happens
- ## ash: assignment errors in "a=Z CMD" lead to CMD not executed
- ## echo
- ## export b
- ## # this fails to both set and export a:
- ## a=Z env | echo grep '^[ab]='
- ## echo "^^^a is not exported"
- ## # but external command does get executed, and $? is not mangled (stays 42):
- ## (exit 42); a=Z env echo Visible:$?
- echo
- # ash: this fails *silently*, bug? bash says "cannot unset: readonly variable"
- true; unset a
- echo Fail:$?
|