macのopenコマンドを利用してインターネットを楽しむ

ggl 単語 単語2 // googleで単語 単語2 を検索する
wiki 単語 // wikiで単語の意味を調べる
alc 単語 // alcで単語を検索

ほかにもgmailとかgoogle mapとか、自在に定義できるようになります。

これを実現するには

1. 下記のinet.shというファイルをどっかに置きまして、

#!/bin/sh

DEFAULT_BROWSER="Google Chrome"
OPTION=""
CMDNAME=$(basename $0)

function show_usage {
  echo "USAGE: $CMDNAME [-f | -g | -s | -h] url"
  echo "  -h, show this help."
  echo "  -f, open url with FireFox"
  echo "  -s, open url with Safari" 
  echo "  -g, open url with Google Chrome"
  exit 1
}

i=0
while getopts fgshc OPT
do
  OPTION=""
  case $OPT in
    f ) BROWSER="Firefox" 
      FF_EXIST=$(ps ax | grep Firefox\.app | grep -v  grep)
      if [ "$FF_EXIST" = "" ]; then
        OPTION=" --args"
      fi ;;
    g ) BROWSER="Google Chrome" ;;
    s ) BROWSER="Safari" ;;
    h ) show_usage ;;
  esac
  BROWSERS[$i]=$BROWSER
  OPTIONS[$i]=$OPTION
  i=$(expr $i + 1)
done

shift $(expr $OPTIND - 1)

#URLを合成する
URL=""
for ARG in $@; do
  URL=${URL}$ARG
done
#URL=$1

if [ "$URL" == "" ]; then
  show_usage
fi

echo $URL


if [ "$BROWSERS" == "" ]; then
  BROWSERS[0]=$DEFAULT_BROWSER
fi

for (( i=0; i < ${#BROWSERS[@]}; ++i )); do
  #echo ${BROWSERS[i]}
  #echo ${OPTIONS[i]}
  open -a /Applications/"${BROWSERS[i]}".app ${OPTIONS[i]} $URL
done

inet.shは、オプションがあって、

inet -fgs http://sample.com/
とやるとなんと三種のブラウザ全部でみれてしまいますw


2. .bash_profileなんかにaliasとかfunctionとか書きましょう。

    # /path/to/ は、inet.shを置いたディレクトリを指定してください。
    alias inet="sh /path/to/inet.sh -f http://"
 
    alias alc="inet eow.alc.co.jp/"
    alias wiki="inet ja.wikipedia.org/wiki/"
    alias gmail="inet mail.google.com/mail/#inbox"
    alias sendgm="inet mail.google.com/mail/shva=1#compose"
    alias blog="inet d.hatena.ne.jp/DECKS/"
    function ggl { local q=$(echo "$*" | tr " " "+"); inet www.google.co.jp/search?q=$q; }
    function gmap { local q=$(echo "$*" | tr " " "+"); inet maps.google.co.jp/maps?q=$q; }
    # マニュアル
    alias phpm="inet jp.php.net/manual-lookup.php?lang=ja\&pattern="
    function jq { local q=$(echo "$*" | tr " " "+"); inet www.google.co.jp/search?q=$q+site:http://semooh.jp/jquery/; }

    # 娯楽
    function nico { local q=$(echo "$*" | tr " " "+"); inet "www.nicovideo.jp/search/$q"; }
    function youtube { local q=$(echo "$*" | tr " " "+"); inet "www.youtube.com/results?search_query=$q"; }

こんな感じに書きます。

URL部分だけ書き換えれば自分だけのコマンドとかも余裕で作れちゃいます。