curl命令无法传递bash参数

时间:2012-05-31 22:48:44

标签: json bash curl

所以我是curl的新手,我正在尝试编写一个可以运行的bash脚本来下载文件。所以我从身份验证开始,然后发出POST请求下载。我得到一个Foo_ID,我在其中使用bash解析并设置为参数。然后我尝试通过下载URL使用GET某些Foo数据。我遇到的问题是每当我传入我从POST响应中解析的参数时,我什么也得不到。这是我正在做的一个例子。

#!/bin/bash
curl -b cookies -c cookies -X POST @login_info -d "https://foo.bar.com/auth"
curl -b cookies -c cookies -X POST @Foo_info -d "https://foo.bar.com/foos" > ./tmp/stuff.t
myFooID=`cat ./tmp/stuff.t |grep -Po '"foo_id:.*?",'|cut -d '"' -f 4`
curl -b cookies -c cookies "http://foo.bar.com/foo-download?id=${myFooID}" > ./myFoos/Foo1.data

我已经回复了myFooID,以确保它是正确的。我也回应了“https://foo.bar.com/foo-download?id=${myFooID}”,它正确显示我需要的URL。任何人都可以帮我这样,就像我说我是新手使用curl和使用bash命令有点生锈。

1 个答案:

答案 0 :(得分:2)

所以我解决了这个问题。问题是在为Foo做我的帖子之后我没有给你足够的时间来创建我的foo,然后再尝试下载它。我在最后两个curl命令之间添加了一个sleep命令,现在它完美地运行了。我要感谢Dennis Williamson帮我清理我的代码,这让我理解了我的问题。我在桌子上为他创造了一座神社。