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
スクリプトは最初の2つのカールコマンドのみを実行し、突然停止します。 SSHを使用してボックスに接続してLinuxサーバーで実行しました。最初の2つのコマンドだけでなく、すべてのカールコマンドが順次実行されるようにするにはどうすればよいですか? 12個のカールコマンドで大きなデータを抽出する必要があり、スクリプトがタイムアウトしないように順番に実行したいと思います。
誰でも指示を提供できますか?
答え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