【发布时间】:2017-10-23 12:48:10
【问题描述】:
我在这里发布了a question 并得到了满足我需要的答案。
我有一个类似的问题,但我找不到答案,所以我问另一个:/
当我直接在终端中运行以下命令时,通过管道输入 jq 时会得到正确的响应。
curl GET "https://jsonplaceholder.typicode.com/posts/2" | jq '.body'
RESPONSE: "*est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla*"
但是,当我在可执行的 bash 脚本中运行相同的命令时,我没有看到任何响应?
result="$(curl GET https://jsonplaceholder.typicode.com/posts/2)" | jq '.body'
echo "$result"
回显的结果是一个空字符串。
有人能指出我正确的方向吗,并可能用双引号/单引号等突出一些细微差别?我假设我犯了语法错误?
谢谢
【问题讨论】:
-
管道和jq也需要在子shell中...
-
这不是细微差别,它显然是唯一可行的方法。查看
$()的作用以及管道的工作原理。