启动多个 Firefox 选项卡(间隔 5 秒)从 Bash 脚本最小化

启动多个 Firefox 选项卡(间隔 5 秒)从 Bash 脚本最小化

我想从特定域打开多个选项卡,每个选项卡都具有 bash 脚本中定义的不同资产。为了避免被服务器禁止,我每隔 5 秒打开一个选项卡,如下所示:

for ((i = 0; i < nWebsite; i = i + 1)); do
    (firefox -new-tabs "${WebsiteString[i]}" > /dev/null 2>&1 &)
    sleep 5
done

但是,不幸的是,每当打开一个新选项卡时,焦点就会转移到 Firefox,并且由于我想打开多个选项卡,它会持续很长时间。

如何最小化上述 for 循环中的每个选项卡?


我尝试了以下方法:

for ((i = 0; i < nWebsite; i = i + 1)); do
    (firefox -new-tab "${WebsiteString[i]}" > /dev/null 2>&1 &)
    xdotool getactivewindow windowminimize
    sleep 5
done

但这并不能解决问题,因为焦点仍然转移到新窗口,然后该窗口被最小化。


虽然我要求使用 Firefox,但如果该解决方案也适用于 google-chrome,那就太好了!

答案1

思考解决方案是您没有保存当前活动窗口 ID。

这一页

xdotool getactivewindow > ~/.window_id
for ((i = 0; i < nWebsite; i = i + 1)); do
    (firefox -new-tab "${WebsiteString[i]}" > /dev/null 2>&1 &)
    xdotool windowfocus $(cat ~/.window_id)
    xdotool windowactivate $(cat ~/.window_id)
    sleep 5
done

当然,这将为循环的每次迭代执行此操作。如果您希望在循环完成时(25 秒后)将 xdtools 放在循环之外,如下所示:

xdotool getactivewindow > ~/.window_id
for ((i = 0; i < nWebsite; i = i + 1)); do
    (firefox -new-tab "${WebsiteString[i]}" > /dev/null 2>&1 &)
    sleep 5
done
xdotool windowfocus $(cat ~/.window_id)
xdotool windowactivate $(cat ~/.window_id)

相关内容