確認環境
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
にアクセスすればいい。
(wget
やcurl
を使ってもいいよ)
> 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 を見てね。
シェルスクリプトにする
毎回こんな長いコマンドは打ってられない。
シェルスクリプトにしてしまおう。
コードの簡単な説明は下記。
- 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 ファイル名
)することをお忘れなく。
参考
以上。