加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – bash:设置数组env变量并从任何shell脚本中取消引用它失败

发布时间:2020-05-23 08:42:43 所属栏目:Linux 来源:互联网
导读:我以这种方式将数组设置为环境变量 例如.脚本test.sh 在test.sh中 #!/bin/bashexport STRING=( str1 str2 ) source test.sh 现在在脚本test-1.sh中 #!/bin/bashecho ${STRING[0]} 反应没什么,只是一条空白, 然而,如果我尝试在test.sh中设置STRING =“str1”

我以这种方式将数组设置为环境变量
例如.脚本test.sh

在test.sh中

#!/bin/bash
export STRING=( "str1" "str2" )

source test.sh

现在在脚本test-1.sh中

#!/bin/bash
echo ${STRING[0]}

反应没什么,只是一条空白,
然而,如果我尝试在test.sh中设置STRING =“str1”
并在test-1.sh中回显$STRING,这是有效的.

测试仅从root用户执行,
现在如何将数组设置为env变量,以便我可以根据需要调用数组元素?早些时候,我试图甚至修改/ etc / bashrc,这也没有产生任何积极的结果.

我需要将数组设置为env变量,因为我可能需要编写许多脚本,这些脚本将使用这些变量设置.

任何人都可以向我提出建议,以纠正我在哪里做错了吗?

解决方法

阅读精细手册,“错误”部分.

Array variables may not (yet) be exported.

虽然,我不知道很多人认为这是一个真正的错误.其他支持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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读