Bash脚本字符串拼接输出带双引号问题求助
问题解决:Bash脚本拼接字符串时多余引号的处理
问题根源
az containerapp show的--query参数默认返回JSON格式结果,因此你获取到的FQDN变量本身包含双引号(例如"appptest.test.azurecontainerapps.io"),直接拼接会把引号带入最终URL,导致格式错误。
解决方案
以下几种方法可快速去除多余引号,得到正确的拼接结果:
方法1:让az返回纯文本结果
使用--output tsv参数,让命令直接输出无格式的原始字符串,避免JSON引号:
FQDN=$(az containerapp show --name "app-test" --resource-group testapp --query "properties.configuration.ingress.fqdn" --output tsv) FULL_URL="https://${FQDN}" echo $FULL_URL
方法2:用字符串工具删除引号
如果无法修改az命令的输出格式,可通过sed或tr过滤掉双引号:
# 使用sed删除所有双引号 FQDN=$(az containerapp show --name "app-test" --resource-group testapp --query "properties.configuration.ingress.fqdn" | sed 's/"//g') # 或使用tr删除双引号 FQDN=$(az containerapp show --name "app-test" --resource-group testapp --query "properties.configuration.ingress.fqdn" | tr -d '"') FULL_URL="https://${FQDN}" echo $FULL_URL
方法3:Bash参数展开去除引号
利用Bash内置的参数替换功能,直接清除变量中的双引号:
FQDN=$(az containerapp show --name "app-test" --resource-group testapp --query "properties.configuration.ingress.fqdn") # 移除变量内所有双引号 FQDN=${FQDN//\"/} # 也可精准移除首尾引号:FQDN=${FQDN#\"}; FQDN=${FQDN%\"} FULL_URL="https://${FQDN}" echo $FULL_URL
验证结果
使用上述任意方法后,输出将符合预期:
https://appptest.test.azurecontainerapps.io
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

