【发布时间】:2022-06-22 17:19:06
【问题描述】:
我在下面设置了一个这样的变量-
domain= ("*.abc" "*.xyz" "*.123")
我想在下面的 json 文件中设置这个变量的值-
"Items": [
"*.abc",
"*.xyz",
"*.123",]
但是,问题是 bash 脚本跳过引号 "" 并且只在引号内。除此之外,bash 还试图将值作为命令。我只想在 Items 数组中设置值,包括逗号,就是这样。
我正在使用jq --arg e1 ${domain[@]}将域变量设置为e1环境变量。
并得到以下错误 -
jq: error: syntax error, unexpected '*', expecting $end (Windows cmd shell quoting issues?) at <top-level>, line 1: *.xyz.com
【问题讨论】:
-
--arg不理解 bash 数组(某些 shell 没有任何数组)。 -
如果你想将引号作为字符串的一部分,你必须在字符串中实际写入一个,例如
domain= ('"*.abc"' '"*.xyz"' '"*.123"')。
标签: json bash shell variables jq