3

所以我是 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 命令有点生疏。

4

1 回答 1

2

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

于 2012-06-01T18:10:31.857 回答