2016-05-28 64 views
0

我想要一个类似于bash脚本的东西,它位于并侦听,然后在我的浏览器中加载特定网页时运行脚本。我想知道这样的事是否可能,如果是的话,我该怎么做?在网页加载时运行命令行脚本

我在想这应该是可能的某种程度上。我在Mac上,在我的/etc/hosts文件中,我可以指定应阻止特定的网站,例如“www.facebook.com”。

所以简而言之。当我的电脑浏览器导航到网页时,是否(以及如何)运行bash脚本,例如“www.facebook.com”?

+1

什么是您的浏览器?你很可能需要为此编写一个浏览器插件。 – anishsane

+0

只是一个bash脚本不可能我猜.. – sjsam

+0

我主要使用Safari,但有时不得不使用Chrome工作。 – Tossel

回答

1

更新回答

如果你想要做网站到预先定义的站点名称的一些匹配,然后说些什么,你的脚本应该是这样的:

#!/bin/bash 
while :; do 
    site=$(osascript -e 'tell application "Safari" to return URL of front document') 
    if [[ $site =~ stackoverflow ]]; then 
     say "Stack overflow! A quality site" 
    fi 
    sleep 1 
done 

原始回答

您对使用的浏览器,页面是什么或想要做什么没有特别的了解,但此脚本坐在并观看Sa fari并询问您正在查看的页面并将其打印在终端中。显然,您可以修改它以检测某些页面,并在导航到它们时运行脚本。

#!/bin/bash 
while :; do 
    osascript -e 'tell application "Safari" to return URL of front document' 
    sleep 1 
done 

把上面的在你的主目录下名为monitorSafari文件。然后进入终端,输入下面的一次,使其可执行:

chmod +x monitorSafari 

然后您可以通过双击它在Finder中运行它,或者通过在终端中输入

./monitorSafari 

。它每秒打印一次您所在的页面。

+0

酷,这看起来像一个很好的解决方案。我明天会试一试。如果它有效,我会标记为正确的。 – Tossel

0

您可以:

  1. 开始你的Mac上的Web服务器(httpdlighttpd ...)(或使用预装httpd
  2. 添加您的首选脚本的文档根目录Web服务器在特定地址上运行(例如,在localhost:8080)。例如,此脚本可以是PHP脚本,用于调用bash脚本或完成作业本身。尽管这可以通过cgi完成。
  3. 添加您的首选地址(www.facebook.com)到您的hosts文件重定向URL请求localhost:8080
  4. 而不是修改hosts文件或安装dnsmasq管理定制请求的重定向。