bash 中的嵌套 while 循环

bash 中的嵌套 while 循环

在 txt 文件中,我有一个我想要访问的网站列表。它们中的每一个都通过 list.php 提供要访问的特定站点上的页面列表(当不带页面参数调用时)。问题在于,内部循环在第一次通过外部循环后立即执行,这会导致运行多个 chromium 浏览器实例。我想要实现的是访问每个页面并关闭浏览器,然后访问另一个页面等。

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

打开新会话后,代码按预期工作,这只是一些侥幸

更新:为了使其可靠,唯一需要的就是将睡眠间隔增加几秒钟

相关内容