在这个奇怪的问题上,我陷入了困境。我有一个bashscript,它正在执行以下操作:
TEST="12.x.x.x"echo ${TEST}给了我12.x.x.x
所以现在我想在命令中使用这个env var:
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和密钥)。但在我刚执行的时候,它就起作用了:
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。命令前后。
发布于 2016-02-10 13:16:43
单引号防止变量展开。试着用双引号:
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发布于 2016-02-10 13:21:12
变量在单引号‘’之间无效,应该使用双引号"“,如下所示:
--hostnames="docker-registry.default.svc.cluster.local,$TEST"https://stackoverflow.com/questions/35316266
复制相似问题