2017-07-18 06:14:06 +05:30
|
|
|
unset a b
|
2017-07-18 06:53:07 +05:30
|
|
|
#
|
2017-07-18 05:10:01 +05:30
|
|
|
readonly a=A
|
|
|
|
b=B
|
|
|
|
readonly b
|
2017-07-18 06:14:06 +05:30
|
|
|
# readonly on already readonly var is harmless:
|
2017-07-18 05:10:01 +05:30
|
|
|
readonly b a
|
|
|
|
readonly | grep '^readonly [ab]='
|
2017-07-18 06:14:06 +05:30
|
|
|
# this should work:
|
2017-07-18 05:10:01 +05:30
|
|
|
export a b
|
|
|
|
export -n a b
|
|
|
|
echo Ok:$?
|
|
|
|
env | grep -e^a= -e^b= # shows nothing
|
|
|
|
|
2017-07-18 06:53:07 +05:30
|
|
|
echo
|
2017-07-18 05:10:01 +05:30
|
|
|
# these should all fail (despite the same value being assigned)
|
|
|
|
# bash does not abort even in non-interactive more (in script)
|
2017-07-18 06:14:06 +05:30
|
|
|
true; a=A
|
|
|
|
echo Fail:$?
|
|
|
|
true; readonly a=A
|
|
|
|
echo Fail:$?
|
|
|
|
|
2017-07-18 06:53:07 +05:30
|
|
|
echo
|
2017-07-18 06:14:06 +05:30
|
|
|
# in bash, assignment in export fails, but export succeeds! :)
|
|
|
|
# we don't mimic that!
|
|
|
|
true; export a=Z
|
2017-07-18 06:53:07 +05:30
|
|
|
echo Fail:$?
|
2017-07-18 06:14:06 +05:30
|
|
|
#env | grep '^a='
|
|
|
|
#echo "^^^a is exported"
|
|
|
|
export -n a # undo that bashism, if it happens
|
|
|
|
|
2017-07-18 06:53:07 +05:30
|
|
|
echo
|
2017-07-18 06:14:06 +05:30
|
|
|
export b
|
|
|
|
# this fails to both set and export a:
|
2017-07-18 06:53:07 +05:30
|
|
|
a=Z env | grep '^[ab]='
|
2017-07-18 06:14:06 +05:30
|
|
|
echo "^^^a is not exported"
|
2017-07-18 06:53:07 +05:30
|
|
|
# but external command does get executed, and $? is not mangled (stays 42):
|
|
|
|
(exit 42); a=Z env echo Visible:$?
|
2017-07-18 06:14:06 +05:30
|
|
|
|
2017-07-18 06:53:07 +05:30
|
|
|
echo
|
|
|
|
true; unset a
|
|
|
|
echo Fail:$?
|