我想要做的是使用带有bash变量的curl
来通过递增参数从URL检索内容长度。
for ((i=2561;i<=2563;i++))
do
(curl -i -s -k -X 'GET' 'http:someurl.asp?q=$i)
done
当我这样做时,我总是从HTTP响应获得相同的内容长度。现在,如果我采用相同的curl命令并在循环外运行,就像这样:
curl -i -s -k -X 'GET' 'http:someurl.asp?q=2562
它完美无缺。我尝试了for和while循环,也尝试使用cat
从文件中读取,但它始终具有相同的内容长度。我在这里缺少什么?
答案 0 :(得分:0)
尝试
curl -i -s -k -X 'GET' "http:someurl.asp?q=$i"
使用单引号即 - 'http:someurl.asp?q=$i'
通常表示
''
内的确切内容。同样(process)
在子shell中运行该过程,这是不必要的。
<强>旁注强>
C风格的forloop sonstruct并不要求你在变量$
之前。但是,在使用变量时,您需要在它们之前$
。
答案 1 :(得分:0)
更正的代码将是
for ((i=2561; i<=2563; i++))
do
curl -i -s -k -X GET "http:someurl.asp?q=$i"
done
您需要使用双引号才能将$1
扩展为当前值i
。