在bash中,你可以做到
MYVAR="somevalue" ./myscript.sh
并且在运行myscript.sh时将定义变量MYVAR。
我的问题是:我可以为数组做同样的事情吗?不幸的是,以下都不起作用。
MYARR=( 1 2 ) ./myscript.sh
MYARR[0]=1 MYARR[1]=2 ./myscript.sh
declare -a MYARR=( 1 2 ) ./myscript.sh
答案 0 :(得分:4)
难以置信的奇怪......我以前从未见过。
看起来数组没有传递给子shell。解决此问题的一种方法是获取脚本而不是执行它:
declare -a MYARR=( 1 2 ); . ./myscript.sh