有没有办法使用bash在浏览器(至少是firefox)中获取当前打开的选项卡。 换句话说,从文件浏览器中调用bash脚本的选项卡的URL(包含在该页面中)
答案 0 :(得分:1)
Firefox改变了在第33版硬盘上存储网址的方式。
我写了这个php脚本来搜索打开的标签。我使用php,所以你需要安装php5-cli(或更新版)的软件包。
您需要调整$ displayOnlyLastActiveUrl以满足您的需求:设置为false以显示所有已打开的URL,对于上一个活动的已打开URL,则为true
脚本可能需要改进,但它符合我的需要。
已知限制:
migth不会查看好的配置文件。
最多可能需要10秒才能更新
如果您选择输出所有网址,则可能会显示一些已关闭的标签
只需创建一个包含上述内容的php文件,然后在shell中使用php yourfile.php
<?php
//
// Display curent opened URLs in firefox.
// Author: Julien Marin (malinuxtele[AT]tuxfamily[DOT]org)
// Licence: GPL 3
//
$displayOnlyLastActiveUrl=true; //set to false to display all opened url, true for last active opened URL
//Search for restore.js (might need to be improved for multiprofiles environement...)
if (!$profileIniContents=fopen(getenv("HOME")."/.mozilla/firefox/profiles.ini", "r")) trigger_error("unable to open profiles file", E_USER_ERROR);
$profile="";
$ar_match=array();
while ($ligne=fgets($profileIniContents))
if (preg_match("/Path=([^.]*)[.]default/", $ligne, $ar_match))
$profile=$ar_match[1];
//Open recovery.js file
if(! $recoveryFileHandle=fopen(getenv("HOME")."/.mozilla/firefox/$profile.default/sessionstore-backups/recovery.js", "r")) trigger_error("unable to open recovery.js file", E_USER_ERROR);
$recoveryData=json_decode(fread($recoveryFileHandle, 4000000), true);
//parse data
$ar_tabs=array();
foreach ($recoveryData["windows"] as $actWindow)
foreach ($actWindow["tabs"] as $actTabGroup)
{
$lastAccess=$actTabGroup["lastAccessed"];
foreach ($actTabGroup["entries"] as $actTabEntry)
if(!$displayOnlyLastActiveUrl) echo($actTabEntry["url"]."\n");
else $ar_tabs[$lastAccess]=$actTabEntry["url"];
}
//search last URL
if ($displayOnlyLastActiveUrl)
{
ksort($ar_tabs);
echo array_pop($ar_tabs);
}
?>
答案 1 :(得分:-3)
我偶然发现了这个:
#!/bin/bash
for var in "$@"
do
#
#
done
$ @包含标签的网址。