linux - Bash 在运行命令时添加了额外的单引号
问题描述
通过脚本运行命令时,BashTLS_CERT
用额外的单引号扩展变量,这使我的命令失败。
我已将简化代码放在这里以获得可读格式
任何人都可以建议如何避免这种情况。
代码:
TLS_CERT="--set-file \"global.vertica.cert.vertica-ca\.crt\"=./vertica-1030.crt"
helm install opsb -n tns opsbridge-suite-2020.08.0-1-SNAPSHOT.tgz -f vert-opsb-values.yaml $TLS_CERT
预期输出:
helm install opsb -n tns opsbridge-suite-2020.08.0-1-SNAPSHOT.tgz -f vert-opsb-values.yaml --set-file "global.vertica.cert.vertica-ca\.crt"=./vertica-1030.crt
实际输出:
helm install opsb -n tns opsbridge-suite-2020.08.0-1-SNAPSHOT.tgz -f vert-opsb-values.yaml --set-file '"global.vertica.cert.vertica-ca\.crt"=./vertica-1030.crt'
解决方案
像往常一样处理此类问题,请使用 bash 数组。
tls_cert=( --set-file global.vertica.cert.vertica-ca.crt=./vertica-1030.crt )
program ... "${tls_cert[@]}"
推荐阅读
- r - R - Prop.Table 条形图条件着色
- c - 何时使用多线程与多处理
- r - 如何将加载了 fileInput 数据的名称添加到闪亮应用程序中的 selectInput?
- apache-kafka - Kafka JMX 指标的时间窗口是多少?
- java - 公式中的字符串文字不能大于 255 个字符 ascii
- authentication - 如何将 Auth0 登录页面授权 URL 配置为 Angular 应用程序中的默认登录页面?
- javascript - 如何将值从 javascript 传递到 html 表单上的 php?
- java - 将 Oracle JRE 与 OpenJdk 一起使用是否合法?
- javascript - 连接数组项
- swift - 无法转换“结果”类型的值' 关闭结果类型 'Result
'