[PATCH] hush.c - export -n flag support

Denys Vlasenko vda.linux at googlemail.com
Mon Apr 20 22:05:09 UTC 2009


On Monday 20 April 2009 21:11, Bayram Kurumahmut wrote:
> Added two new files: shell/hush_test/export-n.tests and
> shell/hush_test/export-n.right
> Added set then export -n test and test cases from my first mail
> Config.in help text changed

Problems:

Did you try to build with HUSH_EXPORT_N off?
It still accepts -n even then.


Your own testcase shows significant differences from bash:

# ./busybox hush export-n.tests
export aaa1="'''"
export aaa2=''
export aaa3="'''"'abc'
export aaa2='ghi'  <=== ???
export aaa3='klm'  <=== ???
export aaa2='ghi'  <=== ???
export aaa3='klm'  <=== ???
export aaa4='4n'  <=== ???
export aaa2='ghi'  <=== ???
export aaa3='klm'  <=== ???
export aaa4='4n'  <=== ???
export aaa8='8'
export aaa6='6n'
aaa9=9
aaa10=10
Done

# bash export-n.tests
declare -x aaa1="'''"
declare -x aaa2=""
declare -x aaa3="'''abc"
declare -x aaa8="8"
aaa9=9
aaa10=10
Done


Multiple -n are not accepted:

# ./busybox hush -c 'export -nnnnnnnnn nnnnnnnn; env | grep nnnnn'
-nnnnnnnnn=
nnnnnnnn=
# bash -c 'export -nnnnnnnnn nnnnnnnn; env | grep nnnnn'
(nothing)


VAR=VAL syntax ignores -n:

# ./busybox hush -c 'export -n HOME=z; env | grep HOME'
HOME=z
# bash -c 'export -n HOME=z; env | grep HOME'


Assignment after export -n "resurrects" export flag:

# ./busybox hush -c 'echo $HOME; echo Unexporting; export -n HOME; HOME=z; env | grep HOME'
/root
Unexporting
HOME=z
# bash -c 'echo $HOME; echo Unexporting; export -n HOME; HOME=z; env | grep HOME'
/root
Unexporting

--
vda


More information about the busybox mailing list