it-swarm-tr.com

Komut dosyası yürütme hazır olduğunda nasıl ses çalabilirim?

Şimdi ve sonra bazı python yürütmek oldukça uzun süren komut dosyaları yürütüyorum.

Onları şu şekilde çalıştırıyorum: $ time python MyScript.py

Senaryoyu yürüttüğü anda nasıl bir ses çalabilirim?

Ubuntu 10.10 (Gnome masaüstü) kullanıyorum.

47
Martin Thoma

Ses çalan herhangi bir komutu ekleyin; bu kadar basit olabilir

$ time mycommand; printf '\7'

veya kadar karmaşık

$ time mycommand && paplay itworked.ogg || paplay bombed.ogg

(Komutlar pulseaudio'nun kurulu olduğunu varsayar; masaüstü ortamınıza bağlı olarak ses çalarınızı değiştirin.)

42
geekosaur

spd-say

sleep 2; spd-say 'get back to work'

Ek motivasyona ihtiyacınız varsa -w İle sonsuz döngü:

sleep 2; while true; do spd-say -w 'get back to work'; done

14.04 tarihinde speech-dispatcher Paketiyle önceden kurulmuş: http://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-AMD64.manifest Sanırım kör insanlar için?

Bir açılır pencere de ekleyin

Bu birleşik bir hayat kurtarıcıdır (bbeep anlamına gelir):

b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )

ve sonra:

super-slow-command;b

Eğer odada bir yerdeysem duyacağım ve uzun işin bittiğini bileceğim.

Aksi takdirde, bilgisayarıma geri döndüğümde açılır pencereyi göreceğim.

İlgili: https://stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux

Sabit diskinizde bir ses seçin ve beklemekte olduğunuz komuttan hemen sonra çalmak için bir komut koyun; sırayla olacaklar:

$ time python MyScript.py; mplayer ~/ScriptDone.wav

(Herhangi bir oynatıcıyı doğal olarak kullanabilirsiniz). Ben bir ton çalar ve çalıştırıldığında libnotify uyarısı gösteren alertdone adlı bir komut dosyası var; Ben tam olarak bu vesileyle kullanıyorum:

$ time python MyScript.py; alertdone "Done timing"

Bu gerçekten basit, eğer kendi yapmak istiyorsanız bunu dayandırabilirsiniz (benimki notify-more, mplayer ve ~/tones/alert_1.wav rağmen):

#!/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
9
Michael Mrozek
time python MyScript.py; play /path/so/sound.ogg

playsoxhttp://bit.ly/software-small paketinden çok temel (UI yok) bir ses oynatıcıdır. Komut satırı ile çalışan herhangi bir ses çalar ile değiştirebilirsiniz.

Şahsen ben my-script && notify-send "done". Bu, Linux Mint'de (Tarçın) şöyle görünen bir masaüstü bildirimi gönderir:

enter image description here

5
eeze

Bunun otomatik olarak yapılmasını da sağlayabilirsiniz.

Size zsh içinde nasıl olduğunu göstereceğim, sonra bash hakkında bilgi ekleyeceğim.

Öz şu şekildedir:

preexec()
{
    starttime=$SECONDS
}

precmd()
{
    if ((SECONDS - starttime >= 5)); then
        aplay "sound.wav"
        # or printf "\b", or notify-send, or whatever
    fi
}

Bunu yalnızca program Python ise, ör.

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'de en iyi yol preexec.bash.txt dosyasını indirip kaynaklamaktır (örneğin . ~/preexec.bash.txt Sayfanızın üst kısmındaki ~/.bashrc, Yukarıdaki komut (veya buna yakın bir şey) çalışmalıdır. (Komutun Python olup olmadığını kontrol etmek için $3 bitinden emin değilim.)

GNOME Terminalini kullanıyorsanız, sizi Yanıp Sönen GNOME Terminali adresine yönlendiririm. Bir komut yapıldığında terminalin yanıp sönmesini sağlayan yazdığım bir yama, böylece Alt-Tab'ı başka bir şeye yapabilirsiniz, o zaman ne zaman yapıldığını size bildirir.

3
Mikel

Her şeye komut eklemenize gerek yok, aslında sizin için otomatik olarak yapan bir komut dosyası kullanabilirsiniz. Buna ndistract-me denir ve Github'da kullanılabilir.

misal

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

şimdi yeni bash başlat ve hazır. Komut dosyası değiştirilerek ses ve uyarı değiştirilebilir.

1
Jakub Lucký