Bash에 중첩된 while 루프

Bash에 중첩된 while 루프

txt 파일에는 내가 방문하고 싶은 웹사이트 목록이 있습니다. 각각은 list.php를 통해 방문할 특정 사이트의 페이지 목록을 제공합니다(페이지 매개변수 없이 호출되는 경우). 문제는 외부 루프를 처음 통과한 직후 내부 루프가 실행되어 여러 크롬 브라우저 인스턴스가 실행된다는 것입니다. 내가 달성하고 싶은 것은 각 페이지를 방문하고 브라우저를 닫은 다음 다른 페이지 등을 방문하는 것입니다.

while read sites; do 
    wget -qO- "$sites/list.php" | 
        while read page; do 
           chromium "$sites/$page" & sleep 1
           pkill --oldest chromium
           wget -qO- "$sites/list.php?page=$page"
         done
done < sites.txt

답변1

chromium백그라운드로 보내지 마세요 :

chromium "$sites/$page" & sleep 1

전경에 유지하십시오.

chromium "$sites/$page"
sleep 1

답변2

새 세션을 연 후 코드가 예상대로 작동하지만 이는 단지 우연일 뿐입니다.

업데이트: 신뢰성을 높이려면 수면 간격을 몇 초 늘리면 됩니다.

관련 정보