0eed355eac
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
46 lines
1.1 KiB
Plaintext
Executable File
46 lines
1.1 KiB
Plaintext
Executable File
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:$?
|