コマンドラインからサクッと天気予報をチェックする

確認環境

PC Thinkpad X1 Carbon 2nd Gen
OS FreeBSD 12.0-RELEASE-p5

やること

コマンドラインから天気予報を見たい、そんなとき。
wttr.inを利用すれば、下記のような素敵なテキスト形式で天気をチェックできる。

> fetch -q -o - "http://wttr.in/okinawa?AFTn1"  
Weather report: Okinawa, Japan  

      .-.      Light Drizzle  
     (   ).    25..28 °C        
    (___(__)15 km/h        
     ‘ ‘ ‘ ‘   16 km            
    ‘ ‘ ‘ ‘    2.1 mm           
                        ┌─────────────┐                          
┌───────────────────────┤  Sun 02 Jun ├───────────────────────┐  
│             Noon      └──────┬──────┘      Night            │  
├──────────────────────────────┼──────────────────────────────┤  
│  _`/"".-.     Patchy rain po…│  _`/"".-.     Moderate or he…│  
│   ,\_(   ).   26..29 °C      │   ,\_(   ).   26..30 °C      │  
│    /(___(__)  ↗ 14-22 km/h   │    /(___(__)  ↗ 13-21 km/h   │  
│      ‘ ‘ ‘ ‘  11 km          │    ‚‘‚‘‚‘‚‘   6 km           │  
│     ‘ ‘ ‘ ‘   0.6 mm | 71%   │    ‚’‚’‚’‚’   3.0 mm | 64%   │  
└──────────────────────────────┴──────────────────────────────┘  

コマンドの説明

FreeBSDなら標準で入っているfetchコマンドを使ってwttr.inにアクセスすればいい。
(wgetcurlを使ってもいいよ)

> fetch -q -o - "http://wttr.in/okinawa?AFTn1"  

fetchコマンドのオプション

通常ではfetchコマンドはHTTPレスポンスをファイルに保存する。
標準出力にそのまま出力するために、下記オプションを指定する。

  • -qで、データ取得時のメッセージ出力をさせない
  • -o -で、取得したデータをファイルではなく標準出力に出力させる

wttr.inで使えるパラメータ

URL(http://wttr.in/)以降のパラメータで、よく使いそうなものを下記に抜粋。

パラメータ 説明
okinawa 実際に天気を調べたい地名。tokyoとかosakaとかを指定
A プレーンテキストで取得。省略時はHTML形式で取得
F 末尾のtwitterフォロー行を表示しない
T カラー表示しない。省略時はシェルのカラー制御文字も付いてくる
n 午前/午後の天気を表示。省略時は、朝/昼/夕/夜の天気を表示
1 天気取得日数。0〜3まで指定可能。省略時は今日含め3日分。
0:今の天気、1:今日1日の天気、2:今日含め明日までの天気
lang=ja 取得言語。usとかjaとか。他とは別パラメータ(&の後に記述)にするのを忘れずに

その他は http://wttr.in/:help を見てね。

シェルスクリプトにする

毎回こんな長いコマンドは打ってられない。
シェルスクリプトにしてしまおう。

get weather info from wttr.in

コードの簡単な説明は下記。

  • 4〜6行目  wttr.inにアクセスするコマンド。 好きなコマンドを使ってね
  • 9行目    デフォルトで使うwttr.inのパラメータ。 好きなの指定してね
  • 11〜14行目 wttr.inのヘルプを表示してコマンド終了
  • 15〜18行目 引数で渡されたwttr.inへのパラメータをセット
  • 22行目   天気を調べる地名をセット。okinawaは、好きな地名を指定してね
  • 25行目   wttr.inから天気情報を取得。好きな言語を指定してね

仮にtenkiという名前でスクリプトファイルを作成した場合、下記のようなコマンドを打てば使える。

  • tenki
  • tenki osaka
  • tenki -2 tokyo

作成したスクリプトは、パスの通ったディレクトリ(echo $PATHで確認)に置くことと、
実行権限を追加(chmod +x ファイル名)することをお忘れなく。

参考

以上。