我们试图获取jq
v1.5 64位来解析数组然后回显结果。
我们是否有正确的jq
语法?
#!/bin/bash
declare -a nameArr
nameArr=("Leia" "Darth Vader" "Anakin" "Han Solo" "Yoda")
jq -c -n "$nameArr"
给出错误
jq: error: syntax error, unexpected $end (Unix shell quoting issues?) at <top-level>, line 1:
Leia,
jq: 1 compile error
答案 0 :(得分:6)
要使用一个不太可能作为shell数组中的值存在的sigil,NUL是一个合适的选择。
nameArr=( "Leia" "Darth Vader" "Anakin" "Han Solo" "Yoda" )
printf '%s\0' "${nameArr[@]}" | jq -csR 'split("\u0000")'
......正确发出:
["Leia","Darth Vader","Anakin","Han Solo","Yoda"]