2017-10-23 10 views
1

私はa questionをここに掲載し、私に必要なものを与えた答えを得ました。BashとcURLを使用して

私は同様の問題が、私はそう、私は別のものを求めているため、答えを見つけることができない1持っている:私は、端末に直接、次のコマンドを実行するとパイプとき、私は正しい応答を得る/

を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" 

エコー結果は空の文字列です。

誰かが正しい方向に私を向けることができますか、二重引用符などのニュアンスの一部を強調表示する可能性がありますか?私は構文エラーを起こしていると仮定していますか?

ありがとうございました

+1

パイプに、@ 123で指摘しても、私は間違って何をやっていたのですサブシェル... – 123

+0

にする必要がありますJQ!あなたの親切な先生に感謝!私は過去10年間のbashスクリプティングを避けることができたので、これらのニュアンスはすべて私にとって初めてのものです!もう一度ありがとう – an0nc0d3r

+0

それはニュアンスではなく、明らかにそれが働く唯一の方法です。 '$()'がやっていることとパイプがどう働くのか見てみましょう。 – 123

答えて

0

サブシェルの中で結果をjqで処理する必要があります。

result=$(curl GET https://jsonplaceholder.typicode.com/posts/2 | jq '.body') 
echo "$result" 

が最初のコメント

0

あなたは変数:resultを宣言しましたが、決してそれを使用しませんでした。

+0

私の質問が更新されました。私はそれをエコーし​​ていました。それを質問に貼り付けるのを忘れてしまった – an0nc0d3r

関連する問題