bash 루프에서 컬이 작동하지 않습니다

bash 루프에서 컬이 작동하지 않습니다

단일 bash 파일에서 이 명령을 실행하여 데이터를 URL에 게시하고 응답을 얻습니다.

curl  -s -X  POST $url -d "username=username"

응답 본문을 출력합니다. 모든 것이 괜찮지만 이 작업을 자동화하고 싶기 때문에 다음과 같이 urls.txt라는 파일에 여러 URL을 저장했습니다.

https://url1.com
https://url2.com
and so on...

파일의 모든 줄(URL)을 반복하려면 이 스크립트를 실행합니다.

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST $p -d "username=username" >> output.txt
done < urls.txt

하드코딩된 URL을 사용하여 루프를 실행해 보았지만 여전히 작동하지 않습니다.

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST http://manual.url -d "username=username" >> output.txt
done < urls.txt

하지만 출력이 저장되거나 표시되지 않습니다. 이유를 모르겠습니다. 어떤 아이디어가 있나요? 컬을 루프로 실행할 수 없나요?

답변1

행을 라는 변수로 읽었 p지만 그 이후에는 해당 변수를 사용하지 않습니다.

나는 이렇게 할 것이다:

while IFS='' read -r url || [ -n "$url" ]; do
    echo "URL: >>$url<<"
    curl -s -X  POST $url -d "username=username" >> output.txt
done < urls.txt

관련 정보