gpt4 book ai didi

Bash curl 和 url 中间的变量

转载 作者:行者123 更新时间:2023-11-29 08:47:23 24 4
gpt4 key购买 nike

我需要使用 curl 读取某些数据。我基本上是从文件中读取关键字

while read line
do
curl 'https://gdata.youtube.com/feeds/api/users/'"${line}"'/subscriptions?v=2&alt=json' \
> '/home/user/archive/'"$line"
done < textfile.txt

无论如何,我还没有找到一种方法来形成要 curl 的 url,这样它就可以工作了。我试过所有可能的单引号和双引号版本。我基本上已经尝试过:

'...'"$line"'...'
"..."${line}"..."
'...'$line'...'

等等..只要说出它的名字,我就很确定我已经试过了。

当我在最好的情况下打印出 URL 时,它将形成为:

 /subscriptions?v=2&alt=jsoneeds/api/users/KEYWORD FROM FILE

或类似的东西。如果您知道这可能是什么原因,我将不胜感激。谢谢!

最佳答案

这不是引用问题。问题是您的关键字文件是 DOS 格式——也就是说,每行以回车符和换行符 (\r\n) 而不仅仅是换行符 (\n) 结尾。回车被读入行变量,并包含在 URL 中。赠品是当你回应它时,它似乎打印:

/subscriptions?v=2&alt=jsoneeds/api/users/KEYWORD FROM FILE"

但它真的在打印:

https://gdata.youtube.com/feeds/api/users/KEYWORD FROM FILE
/subscriptions?v=2&alt=json

...它们之间只有一个回车符,所以第二个会覆盖第一个。

那么你能做些什么呢?这是修剪行尾的 cr 的一种相当简单的方法:

cr=$'\r'
while read line
do
line="${line%$cr}"
curl "https://gdata.youtube.com/feeds/api/users/${line}/subscriptions?v=2&alt=json" \
> "/home/user/archive/$line"
done < textfile.txt

关于Bash curl 和 url 中间的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com