txtファイルには、私が訪問したいウェブサイトのリストがあります。それぞれは、list.phpを介して訪問する特定のサイトのページのリストを提供します(ページパラメータなしで呼び出される場合)。問題は、最初に外部ループを通過した直後に内部ループが実行され、複数のChromeブラウザインスタンスが実行されることです。私が達成したいのは、各ページを訪問し、ブラウザを閉じてから、他のページなどを訪問することです。
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
新しいセッションを開いた後、コードは期待どおりに機能しますが、これは偶然です。
更新:信頼性を高めるには、睡眠間隔を数秒増やすだけです。