bash 腳本僅執行前 2 個curl 指令,然後停止

bash 腳本僅執行前 2 個curl 指令,然後停止

我有一個文字文件,其中很少有 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

相關內容