コマンドが終了したら音を鳴らしたい


ちょっと時間がかかるテストを回しながら開発しています。

[code]

    $ python tests.py
    
[/code]

テストが走っている間に次のテストを書いたりして時間の埋め合わせをしていますが、テストが終わったら前回変えたところを忘れないうちにすぐにテスト結果を見て対処したいです。

テストを実行するコマンドが終了したらビープ音か何かを鳴らせばいいかと思うのですが、どうすればいいでしょうか。

SSH越しのシェルでも動作するような方法がよいです。

おまけでコマンドの終了コードが 0 かそうでないかによって別の音 (ビープ音の数が違うのでもよい) にできればさらによいです。(補足:
ただし、音は終了コードに関わらず常に鳴らしたい)




一度ビープ音を鳴らしたいのであれば次のようにすればよいかと思います．

[code]

    echo ^G
    
[/code]

「^G」を入力するのには `C-v C-g` とタイプすればよいかと思います．
またはターミナルエミュレータの機能で出力があれば知らせるものもあるようです（[Konsole](https://konsole.kde.org/)など）．

追記：

[code]

    python test.py && echo ^G || (echo ^G; sleep 1; echo ^G)
    
[/code]

ワンライナーがお好きなら，こう書くと正常終了時には一回，異常終了時には二回ビープが鳴るようにできます．単に成功失敗問わず鳴らしたいということならば

[code]

    python test.py; echo ^G
    
[/code]

です．




Macの場合、sayコマンドが使用できます。自分は長いmakeビルドなどが終わったことを知らせるのに、sayコマンドを使っています

[code]

    make && say Done
    
[/code]

日本語の音声もつかえるので、日本語を喋らせても面白いです

[code]

    make && say -v Otoya "終わったよ！"
    
[/code]

