sh中执行$(</token/ecr-token)失效但bash正常,如何解决该问题
根因说明
$(< /token/ecr-token) 是Bash独有的语法简写,不属于POSIX标准sh的支持范围,因此在sh环境下无法正常读取文件内容。
适配sh环境的修改方案
将$(< /token/ecr-token)替换为跨shell兼容的cat命令读取写法即可,调整后的完整命令如下:
kubectl create secret docker-registry $SECRET_NAME \ --dry-run=client \ --docker-server="$ECR_REGISTRY" \ --docker-username=AWS \ --docker-password="$(cat /token/ecr-token)" \ -o yaml
可选优化(按需使用)
如果需要剔除文件末尾的换行符避免对token有效性造成影响,可以调整为如下写法:
--docker-password="$(cat /token/ecr-token | tr -d '\n')"
内容的提问来源于stack exchange,提问作者kapil dev
相关产品推荐
相关产品推荐

