명령이 완료되면 소리 재생

명령이 완료되면 소리 재생

사용자가 시작한 명령이 완료되면 터미널에서 경고/소리를 재생하도록 하는 효율적인 방법은 무엇입니까?

각 명령 후에 "경고음" 명령을 명시적으로 실행할 필요가 없도록 자동이어야 합니다.

답변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;

관련 정보