【发布时间】:2017-11-28 06:42:12
【问题描述】:
使用 curl 后不喜欢大括号内的大括号。我试过逃跑,但没有帮助......有什么想法吗?
echo "$(curl -s -u ${USERNAME}:${PASSWORD} GET ${hostName}/${path}.json| jq -r -c '[.field1,.field2] | \"(.[0]) ,(.[1])"')"
结果:
jq: error: syntax error, unexpected INVALID_CHARACTER (Unix shell
quoting issues?) at <top-level>, line 1:
error near (.[0]`)`
【问题讨论】:
-
echo "$(some commands)"几乎总是一个错误,并且使这里的引用变得复杂。为什么不直接运行命令,跳过捕获和回显输出? -
你希望
\"(.[0]) ,(.[1])"做什么? -
你知道不需要花括号吗?仅当下一个字符是有效变量名的一部分时才需要它们。如上所述,不知道为什么你只转义了一个双引号?
-
这是
jq错误,而不是curl错误:您忘记在jq命令中转义关闭的"。但是,您在GET之前缺少-X参数。 (-X GET或省略GET,因为这是默认设置。