我以这种方式将数组设置为环境变量。脚本test.sh
test.sh
在test.sh中
#!/bin/bash export STRING=( "str1" "str2" )
源test.sh
现在在脚本中 test-1.sh
test-1.sh
#!/bin/bash echo ${STRING[0]}
响应什么都没有,只是一个空白行,但是,如果我尝试STRING="str1"在test.sh中进行设置并echo $STRING在中进行test-1.sh,则可以正常工作。
STRING="str1"
echo $STRING
测试仅从root用户执行,现在如何将array设置为env变量,以便我可以根据需要调用array的元素?早些时候,我什至尝试进行修改/etc/bashrc,但这也没有带来任何积极的结果。
/etc/bashrc
我需要将数组设置为env变量,因为可能必须编写许多脚本才能使用这些变量设置。
有人可以向我提供建议以纠正我做错的地方吗?
阅读精美的手册“错误”部分。
数组变量可能尚未导出。
虽然,我不知道很多人认为这是一个实际的错误。其他支持ksh样式的shell也不允许导出它们。
您可以很容易地通过参数,变量或环境来传递数组定义。通常它不是很有用。
function f { unset -v "$2" typeset "$2" eval "${!1}" typeset -p "$2" } typeset -a a=(a b c) myArr=$(typeset -p a) f myArr a