我以这种方式将数组设置为环境变量
例如.脚本test.sh
例如.脚本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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。