【Mac】定期的にスクリプトを実行する
いま、だいたい何時くらい。
そんな時計がむかし、Mac のアプリであった気がする。
同じものを再現してみたい。
だいたいこのくらい。
といっても、date コマンドを実行して、現在なん分かによって、「だいたい」の区分を厳密に決めるくらいしか思いつかない。
4 時 55 分から 5 時 05 分なら、だいたい 5 時くらい。
5 時 05 分から 5 時 15 分まで、5 時すぎ。
5 時 15 分から 5 時 25 分まで、5 時半前。
5 時 25 分から 5 時 35 分まで、5 時半くらい。
5 時 35 分から 5 時 45 分まで、5 時半すぎ。
5 時 45 分から 5 時 55 分まで、6 時前。
だいたいこんな感じだ。
やってみる
📝 daitai.sh#!/bin/bash
m=`date "+%-M"`
h=`date "+%-I"`
if test $m -ge 45; then
h=`expr $h + 1`
if test $h -eq 13; then
h=1
fi
fi
if test $m -ge 55 -o $m -lt 5; then
echo 'だいたい' $h '時くらい'
fi
if test $m -ge 5 -a $m -lt 15; then
echo 'だいたい' $h '時すぎ'
fi
if test $m -ge 15 -a $m -lt 25; then
echo 'だいたい' $h '時半まえ'
fi
if test $m -ge 25 -a $m -lt 35; then
echo 'だいたい' $h '時半くらい'
fi
if test $m -ge 35 -a $m -lt 45; then
echo 'だいたい' $h '時半すぎ'
fi
if test $m -ge 45 -a $m -lt 55; then
echo 'だいたい' $h '時まえ'
fi
だいたい以上のようになろうかと思う。
$ daitai.sh
だいたい 10 時すぎ
試してみたところ、だいたい出来てる。
なんでこんなことをするか
口さがないひと達は罵しるであろう。これがなにになるのか。しょうもないではないか、と。
筆者は先のスクリプトを Geektool で表示することを思いついたのである。
さらにいえば、先のスクリプトを 300 秒おきに実行させて、ついでに別のスクリプトを一緒に実行できるのではないか、と考えたのだ。
例えば以下は、ダウンロードフォルダに溜まりきった pixiv の画像を、一掃してピクチャフォルダに収納するというものである。
📝 pixiv_kataduke.sh#!/bin/bash
cd ~/Downloads
ls -1 | while read line
do
if echo $line | grep -sqE '[0-9]*_p[0-9]*\.(png|jpg|gif|jpeg)'; then
mv $line ~/Pictures/使うかもしれない画像/pixiv
else
continue
fi
done
pixiv は 01234567_p0.png というような規則のファイル名で保存されるのである。
これを実行すると、ダウンロードフォルダの pixiv 画像はピクチャフォルダにある専用のフォルダに片付けられる。
だいたいの時刻を表示するスクリプト、前掲の daitai.sh の最後に、片付けのスクリプトを加える。
/Users/user/スクリプトのパス/pixiv_kataduke.sh
実行してみると、うまく動いてくれるのだ。だいたいの時間の表示とともに、片付けスクリプトも実行される。
これで、SSD を痛めながら、ちまちまと美麗な絵のダウンロードにいそしめる。五分に一回のわりあいでファイルを移動してくれるので、ダウンロードフォルダはいつも片づいている、というわけだ。
そもそも、daitai.sh は必要なのか
Geektool を利用する以上、デスクトップになんか表示させるべきだろう、と思ったのだが、そもそもそんな必要あるのだろうか。
以下のように空のシェルを作って、デスクトップの表示と関係ない pixiv_kataduke.sh を300 秒おきに実行させてみる。
結果としてはちゃんと動いてくれた。daitai.sh なんて必要ないのである。
Geektool を稼動し続けるというコストはある。しかしすでに利用しているなら、Geektool は定期的にスクリプトを実行するのに役立ってくれそうだ。
最近のコメント