ユーザーが開始したコマンドが完了したら端末に警告/音を再生させる効率的な方法は何ですか?
各コマンドの後に「警告音」コマンドを明示的に実行する必要がないように自動でなければなりません。
答え1
ビープ音を使用できます。echo -en "\007"
MBでスピーカーを使用することは非常に基本的なことであり、サウンドカードも必要ありません。しかし、今ではしばしば無効になります。有効にするには、これを試してみてください。https://superuser.com/a/22769
多くのディストリビューションには PulseAudio があるので、次のように CLI でサウンドを再生できます。paplay /usr/share/sounds/freedesktop/stereo/complete.oga
別のメソッドを作成することもできます。https://askubuntu.com/questions/277215/how-to-make-a-sound-once-a-process-is-complete
【編集】すみません。すべてのコマンドバージョンであなたのバージョンを確認できませんでした。trap
必要な動作を達成するために、以前に作成した内容を組み合わせることもできます。https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/
# This will run before any command is executed.
function PreCommand() {
if [ -z "$AT_PROMPT" ]; then
return
fi
unset AT_PROMPT
}
trap "PreCommand" DEBUG
# This will run after the execution of the previous full command line. We don't
# want it PostCommand to execute when first starting a bash session (i.e., at
# the first prompt).
FIRST_PROMPT=1
function PostCommand() {
AT_PROMPT=1
if [ -n "$FIRST_PROMPT" ]; then
unset FIRST_PROMPT
return
fi
paplay /usr/share/sounds/freedesktop/stereo/complete.oga
}
PROMPT_COMMAND="PostCommand"
答え2
play_sound(){
local df="./somedirectory/music_file.wav";
$(which cvlc) \
-q \
--play-and-exit \
--gain=0.5 \
${df} \
&>/dev/null \
;
};
some_command;
play_sound;
これを行うには、コマンドラインvlcをインストールする必要があります。
CVLCと呼ばれます。
sudo apt-get install cvlc;