2016-05-28 8 views
0

ブラウザに特定のWebページを読み込んだときに、スクリプトを実行してリッスンして実行するbashスクリプトが必要です。このようなことが可能かどうか疑問に思っていました。もしそうなら、どうすればいいのですか?Webページの読み込み時にコマンドラインスクリプトを実行する

私はこれが何とか可能であると考えています。私はMacで、/etc/hostsファイルで特定のウェブサイトをブロックするように指定することができます。 "www.facebook.com"

だからです。コンピュータのブラウザがウェブページに移動したときに、例えば「www.facebook.com」のようなbashスクリプトを実行することは可能ですか?あなたが何かを事前に定義されたサイトへのサイトの名前のいくつかのマッチングを行い、その後、言いたい場合は

+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の時計あなたが探しているページを尋ねて、それを端末に印刷します。明らかに特定のページを検出し、そのページに移動するときにスクリプトを実行するように変更できます。

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

あなたのホームディレクトリにあるmonitorSafariというファイルに上記を入れてください。その後、ターミナルに行き、それを実行可能にするために、一度、次のように入力します。

chmod +x monitorSafari 

その後、Finderで、またはあなたのターミナルで

./monitorSafari 

を入力して、それをダブルクリックしていずれかの方法でそれを実行することができます。 1秒に1回のページを印刷します。

+0

これは良い解決策のようです。私は明日それを試してみるよ。それがうまくいくなら、私は正しいものとしてマークします。 – Tossel

0

することはでき:

  1. スタートお使いのMac上のWebサーバ(httpdlighttpd、...)(またはhttpdプリインストールを使用)
  2. のドキュメントルートにお好みのスクリプトを追加します。特定のアドレス(たとえば、localhost:8080)で実行するWebサーバー。たとえば、このスクリプトはbashスクリプトを呼び出すPHPスクリプト、またはジョブ自体を実行します。これはcgiで行うことができます。
  3. はその後localhost:8080
  4. にURL要求をリダイレクトまたはその代わりにhostsファイルを変更し、カスタム要求のリダイレクトを管理するためにdnsmasqをインストールするには、hostsファイルにお好みのアドレス(www.facebook.com)を追加します。
関連する問題