相关疑难解决方法(0)

为什么不能在bash 4.1.2中访问带破折号的环境变量?

在CentOS 5主机上(使用bash 3.2.32),我们使用Ruby(1.8.7)来实现

ENV['AWS_foo-bar_ACCESS_KEY'] = xxxxx
Run Code Online (Sandbox Code Playgroud)

然后,使用bash,我们运行一个shell脚本:

BUCKET_NAME=$1
AWS_ACCESS_KEY_ID_VAR="AWS_${BUCKET_NAME}_ACCESS_KEY_ID"
AWS_ACCESS_KEY_ID="${!AWS_ACCESS_KEY_ID_VAR}"
export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
Run Code Online (Sandbox Code Playgroud)

这在CentOS 5上运行良好.

但是,在CentOS 6上(使用bash 4.1.2),我们得到了错误

-bash: export: `AWS_foo-bar_ACCESS_KEY_ID=xxxxx': not a valid identifier
Run Code Online (Sandbox Code Playgroud)

我们的理解是,这失败了,因为-变量名中不允许这样做.但是为什么这个工作在bash 3.2而不是bash 4.1?

bash shell centos

5
推荐指数
1
解决办法
1941
查看次数

标签 统计

bash ×1

centos ×1

shell ×1