bash 스크립트는 처음 2개의 컬 명령만 실행한 다음 중지합니다.

bash 스크립트는 처음 2개의 컬 명령만 실행한 다음 중지합니다.

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

관련 정보