此脚本打印出正确的值,但看起来我的导出语句不正确:
declare -A ENVMAP=( [foo]=bar [baz]=quux [corge]=grault )
for i in "${!ENVMAP[@]}"
do
echo "key : $i"
echo "value: ${ENVMAP[$i]}"
export "$i"="${ENVMAP[$i]}"
done
值正确打印,因此地图可以正常工作,但不会导出变量。我的出口声明有什么问题?
答案 0 :(得分:1)
你是如何运行脚本的?导出的变量对于脚本的子进程是可见的,但对父进程(即bash控制台)不可见。
答案 1 :(得分:1)
如果您想在用户的系统中永久保存这些变量,您可以将它们添加到当前用户的DOT / BASH配置文件中,几个步骤如下:
我 - 通过正常cd
转到当前用户的目录。
II - 然后通过执行ls -la
或ls -lhtr
列出包含隐藏文件的所有文件。
III - 现在,您可以在BASH配置文件中添加这些导出命令(如果您使用的是Linux / bash),也可以创建自己的.profile
也是(一次只能拿一个)。
IV - 保存后,请使用source .profile
或source .bash_profile
或. ./.profile
或. /.bash_profile
。< / p>
请尝试这些并告诉我这些是否对您有帮助。