Ope*_*ile 6 linux bash environment-variables
我以这种方式将数组设置为环境变量,例如.脚本test.sh
在test.sh中
#!/bin/bash
export STRING=( "str1" "str2" )
Run Code Online (Sandbox Code Playgroud)
source test.sh
现在用脚本 test-1.sh
#!/bin/bash
echo ${STRING[0]}
Run Code Online (Sandbox Code Playgroud)
反应是什么,只是一个空行,而如果我尝试设置STRING="str1"在test.sh做echo $STRING的test-1.sh,这个工程.
测试只从root用户执行,现在如何将数组设置为env变量,以便我可以根据需要调用数组元素?早些时候,我试图甚至修改/etc/bashrc,也没有产生任何积极的结果.
我需要将数组设置为env变量,因为我可能需要编写许多脚本,这些脚本应使用这些变量设置.
任何人都可以向我提出建议,以纠正我在哪里做错了吗?
orm*_*aaj 10
阅读精细手册,"错误"部分.
可能尚未导出数组变量.
虽然,我不知道很多人认为这是一个真正的错误.其他支持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
Run Code Online (Sandbox Code Playgroud)