在加载网页时运行命令行脚本

时间:2016-05-28 14:23:24

标签: bash macos terminal

我想要一个类似于bash脚本的东西,当我在浏览器中加载特定的网页时,它会坐下来监听然后运行脚本。我想知道这样的事情是否可能,如果是的话,我该怎么做呢?

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

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

2 个答案:

答案 0 :(得分: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

原始答案

您对使用的浏览器,页面是什么或您想要做什么并不十分具体,但是这个脚本会查看Safari并询问您正在查看的页面并将其打印在终端中。您可以明显地修改它以检测某些页面并在导航到它们时运行脚本。

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

将上述内容放在HOME目录中名为monitorSafari的文件中。然后进入终端并键入以下一次以使其可执行:

chmod +x monitorSafari

然后您可以通过在Finder中双击它或键入

来运行它
./monitorSafari

在您的终端中。它每秒打印一次你打开的页面。

答案 1 :(得分:0)

你可以:

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