首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环境变量在命令中不工作。

环境变量在命令中不工作。
EN

Stack Overflow用户
提问于 2016-02-10 13:12:55
回答 2查看 49关注 0票数 0

在这个奇怪的问题上,我陷入了困境。我有一个bashscript,它正在执行以下操作:

代码语言:javascript
复制
TEST="12.x.x.x"

echo ${TEST}给了我12.x.x.x

所以现在我想在命令中使用这个env var:

代码语言:javascript
复制
oadm ca create-server-cert --signer-cert=ca.crt \
    --signer-key=ca.key --signer-serial=ca.serial.txt \
    --hostnames='docker-registry.default.svc.cluster.local,$TEST' \
    --cert=registry.crt --key=registry.key

此命令的回显显示其中$TEST的内容。但是命令失败了(它没有为我的IP创建crt和密钥)。但在我刚执行的时候,它就起作用了:

代码语言:javascript
复制
oadm ca create-server-cert --signer-cert=ca.crt \
    --signer-key=ca.key --signer-serial=ca.serial.txt \
    --hostnames='docker-registry.default.svc.cluster.local,12.x.x.x' \
    --cert=registry.crt --key=registry.key

有什么问题吗?$TEST的回音总是给了我IP。命令前后。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-10 13:16:43

单引号防止变量展开。试着用双引号:

代码语言:javascript
复制
oadm ca create-server-cert --signer-cert=ca.crt \
    --signer-key=ca.key --signer-serial=ca.serial.txt \
    --hostnames="docker-registry.default.svc.cluster.local,${TEST}" \
    --cert=registry.crt --key=registry.key
票数 2
EN

Stack Overflow用户

发布于 2016-02-10 13:21:12

变量在单引号‘’之间无效,应该使用双引号"“,如下所示:

代码语言:javascript
复制
--hostnames="docker-registry.default.svc.cluster.local,$TEST"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35316266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档