스크립트 실행이 준비되면 어떻게 소리를 재생할 수 있습니까? 실행하는 데 오랜 시간이 걸리는 일부 파이썬

나는 매번 실행하고 실행하는 데 오랜 시간이 걸리는 일부 파이썬 스크립트를 실행하고 있습니다.

나는 이것을 다음과 같이 실행한다.
$ 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

패키지를 통해 14.04에 사전 설치 speech-dispatcher: 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

playsox Install sox http://bit.ly/software-small 패키지 의 매우 기본적인 (UI 없음) 사운드 플레이어입니다 . 다른 명령 줄 기반 사운드 플레이어로 교체 할 수 있습니다.


답변

개인적으로을 사용 my-script && notify-send "done"합니다. 그러면 Linux Mint (Cinnamon)에서 다음과 같은 데스크탑 알림이 전송됩니다.

여기에 이미지 설명을 입력하십시오


답변

이 작업을 자동으로 수행 할 수도 있습니다.

에 방법을 보여주고 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, 그 이상 (또는 뭔가 가까이가) 작동합니다. (하지 있는지에 대해 $3명령이 파이썬의 경우 비트 확인하려면 .)

그놈 터미널을 사용하고 있다면, 그놈 터미널을 깜박이 는 것도 가리 킵니다 . 내가 작성한 패치로 명령이 완료되면 터미널이 깜박이므로 Alt-Tab을 다른 것으로 옮길 수 있으며 완료되면 알려줍니다.


답변

모든 것에 명령을 추가 할 필요는 없습니다. 실제로 스크립트를 사용하면 자동으로 처리됩니다. undistract-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를 시작하면 설정됩니다. 스크립트를 수정하여 소리와 경고를 변경할 수 있습니다.