사용자가 시작한 명령이 완료되면 터미널에서 경고/소리를 재생하도록 하는 효율적인 방법은 무엇입니까?
각 명령 후에 "경고음" 명령을 명시적으로 실행할 필요가 없도록 자동이어야 합니다.
답변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;