私は時々Sudo apt-get update
を実行しますが、その処理がいつ完了したかを確認する必要があり、イライラします。とにかく通知ポップアップを提供したり、実行が終了したときにサウンドを再生したりできるので、作業を続けることができますか?
そのためのスクリプトを少し書きました。スクリプトは github にあります。
インストールガイドは次のとおりです。
ダウンロード または単にリポジトリのクローンを作成する
$ git clone [email protected]:c0rp-aubakirov/notify_after_command_executed.git
次に、スクリプトpostexec_notify
のソースを.bashrc
に追加します。
git clone
インストールの例を次に示します。
$ cd ~
$ git clone [email protected]:c0rp-aubakirov/notify_after_command_executed.git
$ cd ~/notify_after_command_executed
$ echo "source $(pwd)/postexec_notify" >> ~/.bashrc
ターミナルを再起動します。再起動後、次のメッセージが表示されるはずです。
preexec.sh is not exist
Trying to download it from github
次に、通知が表示されるかどうかをテストしてみます。
$ sleep 6
不明な点や問題がある場合はお知らせください。
私はあなたを助けることができない音。ただし、次のようなものを追加した場合
&& notify-send "Task complete."
コマンドを実行すると、右上隅に通知がポップアップ表示されます。必要なパッケージがデフォルトでインストールされていない場合、Sudo apt-get install libnotify-bin
が取得します。最初のコマンドが正常に完了すると、&&
は2番目のコマンドを実行します。
欲しいのはSudo apt-get update; alert
です。以下は説明と根拠です。
&&
または;
のいずれかでコマンドを区切ります。これらには2つの異なる意味があります。command-a && command-b
は、command-aが最初に実行され、次に成功した場合、command-bが実行されることを意味します。 command-a; command-b
は、最初にcommand-aが実行され、次にcommand-bが実行されることを意味しますcommand-aが成功したかどうか。おそらく、セミコロンが必要です。更新またはアップグレードが正常に終了したかどうかにかかわらず、更新またはアップグレードの実行が停止したときに通知されるようにします。notify-send
で、これは2つのパラメーターを取ります:タイトルとコンテンツ:Sudo apt-get update; notify-send update finished
(いずれかのパラメーターにスペースが含まれる場合は、それらを引用符で囲みます)。notify-send title content
はalert
よりもはるかに迅速かつ簡単に入力できます。このエイリアスは、少なくとも一部のバージョンのUbuntuでデフォルトでbashに組み込まれ、自分のものがない場合は簡単に追加できます(type alert
を使用して存在するかどうかを確認します)。あなたは応答を得るはずです、
alert is aliased to `notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e 's/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//')"'
これは、単に最後のコマンドを引き出してnotify-send
に送信し、付随するアイコンが端末のイメージ(コマンドが成功した場合)またはエラーイメージ(コマンドが失敗した場合)になることを意味します。
人生はさらにシンプルになりました:command; alert
は非常に迅速かつ簡単に入力できます。コマンドが成功したかどうかを警告し、アラートにはコマンドが成功したかどうかの表示が含まれます。
ちなみに、出力をnotify-send
にパイプで送ることができないことが時々悩まされるので、それを行うための小さな関数を作成しました。
notify ()
{
while read input; do
notify-send -i $(ls /usr/share/icons/gnome/32x32/emotes | sed 's/\(.*\)\..*/\1/' | shuf -n1) "message" "$input";
done
}
これにより、command | notify
と入力できます。ただし、この場合のアイコンはランダムです。また、出力の各行について通知を受け取りますが、これはおそらくapt-get update
には適していません。
スピーカーからカスタムサウンドを再生するには、次を実行します。
aplay <path_to_sound_file>
* <path_to_sound_file> =サウンドファイルへのパス
選択したサウンドファイルを再生します。 playsound
エイリアスを~/.bashrc
に追加できます:
alias playsound='aplay <path_to_sound_file>'
* <path_to_sound_file> =サウンドファイルへのパス
これにより、Sudo apt-get update && playsound
の実行が終了したときに、Sudo apt-get update
を実行して、選択したサウンドを再生できます。
スピーカーからカスタムサウンドを再生するには、次を実行します。
pacmd list-sinks | grep -E 'index|device.product.name'
すべてのpulseaudio
の使用可能なシンクのインデックスを、対応するデバイスとともに一覧表示するその後、実行できます
pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null
* <sink_index> = pulseaudio
のシンクのインデックス
選択したシンクを介して/usr/share/sounds/ubuntu/stereo/bell.ogg
を再生します。 (もちろん、必要なサウンドを再生できます); playsound
エイリアスを~/.bashrc
に追加できます:
alias playsound='pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null'
* <sink_index> = pulseaudio
のシンクのインデックス
これにより、Sudo apt-get update && playsound
の実行が終了したときに、Sudo apt-get update
を実行して、選択したサウンドを再生できます。
次のようなものを追加できます
&& echo -e "\007"
行末まで。やってみて
Sudo apt-get update && Sudo apt-get -y upgrade && echo -e "\007"
役立つことを願っています