나는 매번 실행하고 실행하는 데 오랜 시간이 걸리는 일부 파이썬 스크립트를 실행하고 있습니다.
나는 이것을 다음과 같이 실행한다.
$ time python MyScript.py
스크립트 실행이 완료 되 자마자 소리를 재생하려면 어떻게해야합니까?
Ubuntu 10.10 (Gnome 데스크탑)을 사용합니다.
나는 매번 실행하고 실행하는 데 오랜 시간이 걸리는 일부 파이썬 스크립트를 실행하고 있습니다.
나는 이것을 다음과 같이 실행한다.
$ time python MyScript.py
스크립트 실행이 완료 되 자마자 소리를 재생하려면 어떻게해야합니까?
Ubuntu 10.10 (Gnome 데스크탑)을 사용합니다.
답변:
소리를 재생하는 명령을 추가하십시오. 이만큼 간단 할 수 있습니다
$ time mycommand; printf '\7'
또는 복잡한
$ time mycommand && paplay itworked.ogg || paplay bombed.ogg
(명령은 pulseaudio가 설치되어 있다고 가정합니다. 데스크탑 환경에 따라 사운드 플레이어를 대체하십시오.)
paplay
은 아마도 "현대"Linux 시스템에서 사운드를 재생하는 데 가장 적합한 명령 일 것입니다.
time python MyScript.py -n 40 && paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg || paplay /usr/share/sounds/ubuntu/stereo/phone-outgoing-busy.ogg
printf '\7'
나를 위해 작동합니다 (paplay는하지 않습니다 (git shell)). 그러나 그것은 아주 작은 bip 입니다. 다른 소리를내는 코드가 더 있습니까? 나는 시도했다 \6
, \8
그러나 그들은 몇 가지 문자입니다.
\7
(BEL)은 일반적으로 소리를 유발할 수있는 유일한 문자입니다 (Wikipedia article Control character 참조 ). 항상 소리가 나지는 않을 수도 있습니다.
for i in {1..30}; do for j in {1..3}; do printf '\7'; sleep 0.12; done; sleep 0.4; done
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
spd-say
와 관련된 도구 를 얻으려면 (Fedora 24) speech-dispatcher
와 같은 하위 패키지를 설치해야 할 수도 있습니다 speech-dispatcher-utils
.
하드 드라이브에서 소리를 선택하고 대기중인 명령 바로 다음에 명령을 내려 놓으십시오. 그들은 순차적으로 일어날 것입니다 :
$ 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
notify-more
또는 notify-send
실제로 사운드를 재생하는 데 유용한 대안이 될 수 있습니다.
time python MyScript.py; play /path/so/sound.ogg
play
sox Install sox http://bit.ly/software-small 패키지 의 매우 기본적인 (UI 없음) 사운드 플레이어입니다 . 다른 명령 줄 기반 사운드 플레이어로 교체 할 수 있습니다.
play
, aplay
, 또는 paplay
. (내 우분투 시스템이 aplay
와 paplay
기본적으로.)
time python MyScript.py -n 40; paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg
고마워요
이 작업을 자동으로 수행 할 수도 있습니다.
에 방법을 보여주고 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를 시작하면 설정됩니다. 스크립트를 수정하여 소리와 경고를 변경할 수 있습니다.
bash
하고zsh
있습니까? 실제로 자동으로이 작업을 수행하는 몇 가지 방법이 있지만, 관련이 있으며 사용중인 쉘에 따라 다릅니다.