我需要编写一个循环,在其中需要i
在 url 中传递“令牌”(固定的)和变量 ( )。我有什么办法可以实现这一目标吗?我编写了以下代码,但它不起作用。如果我在整个 url 周围加上双引号,它就不起作用
for ((i=1;i<=100;i++)); do
curl -O "https://api.mysite.com/info?&access_token=xyx"&page=i
done
答案1
该字符&
是 shell 中的特殊语法,因此您编写的内容会curl
在后台运行该命令,并page=i
在前台运行该命令。您需要将其放在引号内。
要引用变量的值,请在$
其前面添加 a。变量替换如下所示:$i
— 并且它必须位于双引号内,而不是单引号内。您也可以将变量替换保留为不加引号,但是进一步扩大变量的值因此,在您了解何时安全之前不要这样做 - 仅$i
在双引号内使用。
for ((i=1; i<=100; i++)); do
curl -O "https://api.mysite.com/info?access_token=xyx&page=$i"
done