6

在 bash 中,你可以做

MYVAR="somevalue" ./myscript.sh

并且变量 MYVAR 将在运行 myscript.sh 时定义。

我的问题是:我可以对数组做同样的事情吗?不幸的是,以下都不起作用。

MYARR=( 1 2 ) ./myscript.sh
MYARR[0]=1 MYARR[1]=2 ./myscript.sh
declare -a MYARR=( 1 2 ) ./myscript.sh
4

1 回答 1

6

难以置信的奇怪....我以前从未见过。

看起来数组没有传递给子shell。解决此问题的一种方法是获取脚本而不是执行它:

declare -a MYARR=( 1 2 ); . ./myscript.sh
于 2013-08-08T14:33:40.697 回答