回答:
サウンドを再生するコマンドを追加します。これは次のように簡単です
$ time mycommand; printf '\7'
または
$ time mycommand && paplay itworked.ogg || paplay bombed.ogg
(コマンドはpulseaudioがインストールされていることを前提としています。デスクトップ環境に依存するサウンドプレーヤーに置き換えてください。)
paplay
は、おそらく「最新の」Linuxシステムでサウンドを再生するために使用する最適なコマンドです。
time python MyScript.py -n 40 && paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg || paplay /usr/share/sounds/ubuntu/stereo/phone-outgoing-busy.ogg
printf '\7'
私のために動作します(paplayは動作しません;(git shell))が、それはほんの小さなbipです。他の音を出すコードはまだありますか?私が試した\6
、\8
しかし、彼らはいくつかの文字です。
\7
(BEL)は通常、おそらくサウンドをトリガーする可能性のある唯一のキャラクターです(Wikipediaの記事Control characterを参照)。常に音を出すとは限らないことに注意してください。
for i in {1..30}; do for j in {1..3}; do printf '\7'; sleep 0.12; done; sleep 0.4; done
spd-say
sleep 2; spd-say 'get back to work'
-w
追加のモチベーションが必要な場合の無限ループ:
sleep 2; while true; do spd-say -w 'get back to work'; done
パッケージを介して14.04にプレインストールされていますspeech-dispatcher
:視覚障害者向けのhttp://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-amd64.manifest
ポップアップも追加します
このコンボは命の恩人です(のb
略beep
):
b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )
その後:
super-slow-command;b
私が部屋のどこかにいるなら、それを聞いて、長い仕事が終わったことを知るでしょう。
そうしないと、コンピューターに戻ったときにポップアップが表示されます。
関連:https : //stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux
spd-say
関連付けられたツールを取得するには、(Fedora 24)のspeech-dispatcher
ようなサブパッケージをインストールする必要がある場合がありますspeech-dispatcher-utils
。
ハードドライブでサウンドを選択し、待機中のコマンドの直後に再生するコマンドを入力します。それらは順番に発生します。
$ time python MyScript.py; mplayer ~/ScriptDone.wav
(当然、任意のプレーヤーを使用できます)。alertdone
トーンを再生し、実行時にlibnotifyアラートを表示するというスクリプトがあります。私はまさにこの機会にそれを使用します:
$ time python MyScript.py; alertdone "Done timing"
それは(私が必要とするあなた自身のようにしたい場合ので、あなたは、この上で、それをベースにすることができ、本当に簡単だnotify-more
、mplayer
と~/tones/alert_1.wav
が):
#!/bin/bash
message=${1:-"Finished working"}
notify-more -t 10000 -i /usr/share/icons/gnome/32x32/actions/insert-object.png "Process Finished" "$message"
mplayer ~/tones/alert_1.wav
notify-more
またはnotify-send
実際にサウンドを再生するための有用な代替手段になる可能性があります。
time python MyScript.py; play /path/so/sound.ogg
play
sox Install sox http://bit.ly/software-smallパッケージの非常に基本的な(UIなしの)サウンドプレーヤーです。他のコマンドライン駆動のサウンドプレーヤーに置き換えることができます。
play
、aplay
、またはpaplay
。(私のUbuntuシステムを持っているaplay
とpaplay
、デフォルトで。)
time python MyScript.py -n 40; paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg
働いた、ありがとう。
これを自動的に行うこともできます。
方法を示してzsh
から、情報を追加しbash
ます。
本質は次のようになります。
preexec()
{
starttime=$SECONDS
}
precmd()
{
if ((SECONDS - starttime >= 5)); then
aplay "sound.wav"
# or printf "\b", or notify-send, or whatever
fi
}
また、プログラムがPythonの場合にのみ実行させることもできます。たとえば、
preexec()
{
starttime=$SECONDS
case $3 in python*)
command_is_python=true;;
*)
command_is_python=false;;
esac
}
precmd()
{
if $command_is_python && ((SECONDS - starttime >= 5)); then
aplay "sound.wav"
# or printf "\b", or notify-send, or whatever
fi
}
ではbash
、preexec.bash.txtをダウンロードしてソースにする(たとえば. ~/preexec.bash.txt
、の上部で~/.bashrc
、上記(またはそれに近いもの)が機能するはずです($3
コマンドがPythonかどうかを確認するビットがわからない))
GNOMEターミナルを使用している場合は、GNOMEターミナルをフラッシュすることもお勧めします。これは、コマンドが実行されたときにターミナルを点滅させるパッチであるため、Altキーを押しながらTabキーを押すと、完了したことを通知できます。
すべてにコマンドを追加する必要はありません。実際にスクリプトを使用できます。これは自動的に実行されます。undistract-meと呼ばれ、Githubで入手できます。
例
sudo apt install undistract-me #installs the script (on Debian)
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc #adds auto-enable to your console
echo 'export LONG_RUNNING_COMMAND_TIMEOUT=XXX' >> ~/.bashrc #where XXX is number of seconds when the command is long enough to alert you
echo 'export UDM_PLAY_SOUND=1' >> ~/.bashrc #to enable sound alert
これで新しいbashが開始され、設定が完了しました。サウンドとアラートは、スクリプトを変更することで変更できます。
bash
またはを使用していますかzsh
?実際にこれを自動的に行う方法はいくつかありますが、それらは非常に複雑で、使用しているシェルに依存します。