编写脚本来自动执行 Firefox 中的某些任务。
这些任务应该通过干净的 Firefox 配置文件运行,因此它们速度很快并且不会干扰我的任何常规浏览。
#!/bin/bash
# Launch clean firefox profile with parameters:
# -no-remote don't connect to any running instance of firefox
# -P run firefox through a profile
firefox -P 'Another Profile' &
sleep 4 # wait for firefox to load
# Open URLs
firefox -new-tab 'http://askubuntu.com/users'
firefox -new-tab 'http://askubuntu.com/badges'
不幸的是,我无法在“另一个配置文件”中打开这些 URL。相反,Ubuntu 会使用我的默认用户配置文件启动 Firefox 并在那里打开它们。
关于如何在“其他个人资料”中打开它们有什么建议吗?
答案1
如果省略配置文件,firefox
则会在打开的 Firefox 程序之一中打开 URL。您必须明确提及它:
firefox -P 'Another Profile' http://example.com/
您还可以一次打开多个 URL 并将其合并,无需睡眠:
firefox -P 'Another Profile' http://example.com/ http://example.net/
答案2
为了解决您提到的问题,我采取了一种方法,即使用简单的 javascript 重定向打开本地 html 文件。我在配置文件中打开 Firefox,并将该本地 html 页面作为 url。
下面是我在 html 文件中用于重定向到我的宏的代码示例。我相信还有更好的方法,但目前对我来说这个方法已经足够好了。哦,我还使用 close all others 标签来清除初始页面。
<script language="JavaScript">
function redirect() {
window.location.href = 'http://run.imacros.net/?m=Macro_folder/sub_folder/macro.js';
}
setTimeout(function(){
redirect();
},(5 * 1000));
</script>
答案3
基于Att Righ 的回答我开发了以下解决方案,可以根据 URL 自动选择正确的配置文件。
该包装脚本在 Ubuntu Linux 20.04.6 和 Mozilla Firefox 104.0 上进行了测试。
#!/bin/bash
if [[ "$@" =~ .*"google."|"facebook.com"|"instagram.com".* ]]
then
profile=for_evil_sites
else
profile=default
fi
if pgrep --full "firefox\b.*$profile" > /dev/null; then
/usr/bin/firefox -P "$profile" "$@" > /dev/null
else
/usr/bin/firefox --new-instance -P "$profile" "$@" > /dev/null
disown $!
fi
使用名称firefox
eg in保存脚本$HOME/bin/
,并确保将加载该脚本而不是标准 Firefox。(目录必须位于变量中的原始目录之前$PATH
。)