Google 検索で表示される動物の鳴き声を CLI で
一応数日前に Twitter の方で投稿
したやつを詳しく書く感じです
このページ Twitter の読み込みに
若干時間がかかるみたいです
Twitter ではモバイル画面でも全体が一度に
表示されるようにバックスラッシュを入れて
みましたが、この記事では普通に書きます
なんてくだらない…
くだらないけど楽しい
特徴
前回の記事のソリューション②と同様ローカルな
音声ファイルを使用しないので汎用性があるコマンドを使う中で音声ファイルURLの変更や削除
にいち早く気付ける(何のメリットもない)
音声ファイルの URL を調べる
Google 検索で動物の鳴き声を調べていたら動物の鳴き
声のリストが出てきたので、デベロッパツールを使って
音声ファイルの URL を調べたらこんな感じでした:
https://www.google.com/logos/fnbx/animal_sounds/rooster.mp3
# オンドリの場合
他の動物の鳴き声の URLですが、例えば牛と馬は推察
されるようにそれぞれ cow, horse でした
タイマー終了後にオンドリと馬と牛が同時に鳴く仕様の
コマンドがあれば牧場風…?
ということで "シェルスクリプトタイム"
っとその前に環境確認
環境設定
シェルスクリプトタイム
お決まり
コマンド名を決めましょう
牧場は英語で ranch だそうなので ranch でいきますか
cd /usr/local/bin # コマンドを作成したいディレクトリに移動
touch ranch
chmod +x ranch
which ranch # コマンドが作成されていることを確認
nano ranch # 好きなエディタで編集開始
オンドリの音声ファイルを再生するコマンドは以下:
mplayer -really-quiet http://www.google.com/logos/fnbx/animal_sounds/rooster.mp3
mplayer で https が失敗したので http で書きました
URL が長くてコマンドも長いですね…
これを3行書くのは見栄えが悪い気がする…
関数定義
ということで音声再生の関数名を決めましょう
動物を…召喚?
召喚は英語で…summon?
関数名は summon でいきますか
summon () {
mplayer -really-quiet http://www.google.com/logos/fnbx/animal_sounds/${1}.mp3
}
zsh では repeat というメソッドが使えるそうです
コマンド同士を "&" で繋ぎ並行実行できるようにします
複数並列コマンドを改行して記述する時は "&" は各コマンド末尾に記述
repeat 50 { # 好きな回数に変更して下さい
summon rooster &
summon horse &
summon cow
}
全体
コマンド内容全体はこんな感じ:
#!/usr/bin/env zsh
summon () {
mplayer -really-quiet http://www.google.com/logos/fnbx/animal_sounds/${1}.mp3
}
ttimer -q $1
repeat 50 {
summon rooster &
summon horse &
summon cow
}
使ってみよう
ranch 25m # 25分後に牧場
まとめ
今回は ttimer を使ってアラームとして使いましたが、
次回は crontab を使って定期実行する仕様にします
トップイラスト: 牧場の動物セット
かわいいイラストありがとうございます :)