无法将 jq 的输出存储在变量中

Dar*_*ert 5 bash json jq

我有一些文本想要转义为可以在 JSON 中使用的内容。我可以使用 jq 转义文本并显示它

normaltext="My normal text that I want to put in \"JSON\""
echo $normaltext | jq --slurp --raw-input
Run Code Online (Sandbox Code Playgroud)

"我想放入\"JSON\"的普通文本\n"

但是,将该命令输出存储到一个变量中, jq 似乎没有接收输入,只是显示帮助文本。

escapedtext=$(echo $normaltext | jq --slurp --raw-input)
Run Code Online (Sandbox Code Playgroud)

jq - 命令行 JSON 处理器 [版本 1.5-1-a5b5cbe] 用法:jq [选项] [文件...]

pea*_*eak 9

您的 jq 版本显然需要.此处的过滤器,如下所示:

 jq -s -R .
Run Code Online (Sandbox Code Playgroud)

  • 那些没有明确记录的,当`jq`可以检测到它的标准输出是终端时,你似乎只能省略`.`。 (2认同)