
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
이 스크립트는 처음 두 개의 컬 명령만 실행 중이며 갑자기 중지됩니다. 해당 상자에 대한 SSH 연결을 사용하여 Linux 서버에서 이것을 실행하고 있습니다. 처음 두 명령만 실행되는 것이 아니라 모든 컬 명령이 순차적으로 실행되도록 하려면 어떻게 해야 합니까? 12개의 컬 명령이 포함된 훨씬 더 큰 데이터를 가져와야 합니다. 스크립트 시간 초과 없이 순차적으로 실행하고 싶습니다.
누군가 이에 대한 지침을 제공해 주시겠습니까?
답변1
따라서 이 스크립트에는 Bashism이 많이 포함되어 있습니다. 일반적으로 꼭 필요한 경우가 아니라면 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