Export Array Variables in BASH
12 August 2015
In short, we cannot export an BASH array. Exporting not only does no good but also may incur issues (trigger a bug of bash?).
$ cat lib.sh
export MY_VAR=("hello:" "world")
echo -e "In lib.sh:\t ${MY_VAR[@]}"
$ cat test.sh
#!/bin/bash
function my_fun {
source lib.sh
echo -e "In my_fun:\t ${MY_VAR[@]}"
}
my_fun
echo -e "Out my_fun:\t ${MY_VAR[@]}"
$ ./test.sh
In lib.sh: hello world
In my_fun: hello world
Out my_fun: <== MISSING ==>
Without "export", the code works as expected:
$ cat lib.sh
MY_VAR=(hello world)
echo -e "In lib.sh:\t ${MY_VAR[@]}"
$ ./test.sh
In lib.sh: hello world
In my_fun: hello world
Out my_fun: hello world
blog comments powered by Disqus