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
그래서 이 대본에는 굴욕감이 많이 들어있습니다. 일반적으로 말해서 꼭 필요한 경우가 아니면 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