私は時々実行していますpythonスクリプトの実行にはかなり時間がかかります。
私はこのようにそれらを実行します:$ time python MyScript.py
スクリプトの実行が完了したらすぐにサウンドを再生するにはどうすればよいですか?
私はUbuntu 10.10(Gnomeデスクトップ)を使用しています。
サウンドを再生するコマンドを追加します。これは、
$ time mycommand; printf '\7'
または同じくらい複雑
$ time mycommand && paplay itworked.ogg || paplay bombed.ogg
(コマンドでは、pulseaudioがインストールされていることを前提としています。デスクトップ環境に応じて、サウンドプレーヤーを置き換えてください。)
spd-say
sleep 2; spd-say 'get back to work'
やる気が必要な場合は、-w
を使用した無限ループ:
sleep 2; while true; do spd-say -w 'get back to work'; done
パッケージspeech-dispatcher
を介して14.04にプリインストール: 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
ハードドライブからサウンドを選択し、待機しているコマンドの直後に再生するコマンドを入力するだけです。それらは順番に発生します:
$ 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
time python MyScript.py; play /path/so/sound.ogg
play
は soxInstall sox http://bit.ly/software-small パッケージの非常に基本的な(UIなし)サウンドプレーヤーです。他のコマンドライン駆動のサウンドプレーヤーで置き換えることができます。
これを自動的に実行することもできます。
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
、次に上記(またはそれに近いもの)が機能するはずです(コマンドがPythonかどうかを確認するための$3
ビットについては不明です)。
GNOMEターミナルを使用している場合は、 Flashing GNOME Terminal も示します。これは私が書いたパッチで、コマンドが実行されたときに端末を点滅させるので、Alt-Tabで別の場所に移動でき、完了したことを通知します。
すべてにコマンドを追加する必要はありません。実際にスクリプトを使用して、自動的に追加することができます。 ndistract-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を開始すると、設定が完了します。サウンドとアラートは、スクリプトを変更することで変更できます。