我有一个文本文件,其中很少有 URL
销售数据.txt
http://localhost:9380/run?startDate=2018-12-01&endDate=2018-12-31
http://localhost:9380/run?startDate=2018-10-01&endDate=2018-10-31
http://localhost:9380/run?startDate=2018-09-01&endDate=2018-09-30
http://localhost:9380/run?startDate=2018-08-01&endDate=2018-08-31
和 bash 脚本如下:
mapfile -t salesData < salesData.txt
i=0
echo 'hii'${i};
while [ ${i} -lt ${#salesData[@]} ] ; do
echo "Iteration Number is " ${i} >> audit.txt
curl -s --max-time 3600 ${salesData[${i}]}
sleep 30
echo "Successfully completed curl"
((i++))
done
该脚本仅运行前两个curl 命令,然后突然停止。我通过使用 ssh 连接到该盒子来在 Linux 服务器上运行它。我如何确保所有的curl命令都以顺序方式执行,而不仅仅是前两个命令。我必须提取更大的数据,其中将有 12 个curl 命令,我想以顺序方式执行它们,而不会导致脚本超时。
有人可以提供一些指导吗?
答案1
所以这个剧本里有很多羞辱。一般来说,除非确实需要,否则最好坚持使用 POSIX。这是示例:
n1=0
while read each
do
echo "Iteration Number is $n1" >> audio.txt
curl -s --max-time 3600 "$each"
n1=$(( n1 + 1 ))
done < salesData.txt