コマンドラインからWeb検索

コマンドを実行して、エラーが出たときとかWebで検索することが多い。コマンドラインから直接Web検索ができると便利なんじゃないかと思い、searchというシェル関数を作ることにした。

使い方

$ search "firefox chrome opera"
0 : bing.com
1 : google.co.jp
2 : goo dictionary(all)
3 : eijiro
4 : google translation
5 : excite translation
6 : wikipedia(jp)
7 : wikipedia(en)
select number:

コマンドラインからsearchを調べたい文字列付きで実行すると番号が聞かれる。番号を選択するとブラウザを開いて検索する。

screenのコピーモードと併用すると、マウスを使わずに検索文字列を貼り付けられるから便利。

  • firefoxのみ
  • 日本語は上手く検索できんかも
  • debianでのみ動作を確認

ソース

function search() {
    encoded=$(perl -MURI::Escape -e 'print uri_escape(shift)' "$1")

    echo "0 : bing.com"
    echo "1 : google.co.jp"
    echo "2 : goo dictionary(all)"
    echo "3 : eijiro"
    echo "4 : google translation"
    echo "5 : excite translation"
    echo "6 : wikipedia(jp)"
    echo "7 : wikipedia(en)"
    echo -n "select number: "
    read number

    case "$number" in
        0)
            firefox -new-tab 'http://www.bing.com/search?q='$encoded &
            ;;
        1)
            firefox -new-tab 'http://www.google.co.jp/search?q='$encoded'&hl=ja&ie=UTF_8&lr=lang_ja' &
            ;;
        2)
            firefox -new-tab 'http://dictionary.goo.ne.jp/srch/all/'$encoded'/m0e/' &
            ;;
        3)
            firefox -new-tab 'http://eow.alc.co.jp/'$encoded'/UTF-8/' &
            ;;
        4)
            firefox -new-tab 'http://translate.google.com/translate_t?hl=ja&langpair=en%7Cja&text='$encoded &
            ;;
        5)
            firefox -new-tab 'http://www.excite.co.jp/world/english/?before='$encoded'&wb_lp=ENJA' &
            ;;
        6)
            firefox -new-tab 'http://ja.wikipedia.org/wiki/'$encoded &
            ;;
        7)
            firefox -new-tab 'http://en.wikipedia.org/wiki/'$encoded &
            ;;
        *)
            echo "Unknown number $number" >&2
            ;;
    esac > /dev/null
}