バックグラウンドプロセスで実行した処理の完了時に音を鳴らす

長い処理が終わったときに音を鳴らすならこんな感じ。

sleep 3; say finish

長い処理なのでバックグラウンドで実行させようとしてこんな風に書いても

sleep 3 &; say finish

当たり前だけど2番目のコマンドをすぐ実行しちゃう。

なので、こんな感じで普通にフォアグラウンドで実行するユーザー関数を作成して

function _f { sleep $1; say finish }

そいつをラップするユーザー関数内で、元関数をバックグラウンドで実行するように作成。

function f { _f $1 & }

これで

f 3

とやると、望んだ結果となる。

Macだとbellがないけど、sayが面白い。なんでも喋らせられるのか。オレの初音ミク