我尝试遍历包含 URL 的列表并下载内容。内容通过管道传输json_pp
以使其更加美观。
但问题是它只生成 loot_0.json!并且不断覆盖内容。
#!/bin/bash
COUNTER=0
cat links.txt | while read line; do #links.txt
PAGE=$(curl -s $line)
echo $PAGE | json_pp
done > loot/loot_$((COUNTER++)).json
我也尝试过
#!/bin/bash
COUNTER=0
cat links.txt | while read line; do #links.txt
PAGE=$(curl -s $line)
echo $PAGE | json_pp > loot/loot_$((COUNTER++)).json
done
预期行为应该是文件
loot_1.json
loot_2.json
loot_3.json
..
答案1
以下 shellscript 对我有用。我对 有问题json_pp
,它抱怨malformed JSON string, neither array, object, number, string or atom
。
#!/bin/bash
counter=0
while read line;
do
# wget "$line" -O "${line##*/}$((counter++))"
page=$(curl -s "$line")
echo "$page" > "loot_$((counter++))"
done < links.txt
我更喜欢小写变量(以降低与已经存在的环境变量冲突的风险)。
我从输入文件重定向(并避免调用
cat
)我
counter
在循环内更新我使用局部变量 loot_... 进行测试,但如果您愿意,也可以将子目录保留在路径中。
请注意,我在脚本中使用变量时引用了“...”。