Rozpocząłem długi proces przez terminal. Czy jest możliwe, aby terminal Ubuntu wydał dźwięk po zakończeniu procesu? W ten sposób nie muszę ciągle sprawdzać, ale zamiast tego zostaniemy powiadomieni dźwiękiem.
command-line
notification
Goaler444
źródło
źródło
Odpowiedzi:
Istnieją co najmniej trzy sposoby osiągnięcia tego celu poprzez umieszczenie odpowiedniego polecenia na końcu skryptu, który możesz wywołać w trakcie długiego procesu:
„Klasycznym” sposobem odtwarzania dźwięku jest użycie sygnału dźwiękowego przez głośniki komputera. Jednak to nie zadziała we wszystkich przypadkach (np. W moim systemie głośniki komputera są całkowicie wyłączone) i będziesz musiał usunąć pscpkr
/etc/modprobe/blacklist.conf
i załadowaćpcspkr
moduł jądra.Możemy również odtwarzać dowolny plik dźwiękowy w formacie wav przy użyciu aplay (domyślnie instalowany):
Innym sposobem jest użycie interfejsu wiersza poleceń pulseaudio, aby umożliwić odtwarzanie plików dźwiękowych, które system
libsndfile
rozpoznaje na domyślnym wyjściu audio:Możemy użyć domyślnych plików dźwiękowych z
/usr/share/sounds/
dowolnego innego pliku dźwiękowego w innym miejscu.Po prostu wspomniałem o tym, istnieje inny fajny sposób na osiągnięcie tego przez niewłaściwe użycie espeak , który jest domyślnie instalowany w Ubuntu <= 12.04. Zobacz, a raczej usłysz następujący przykład:
W Ubuntu> = 12.10 Orca używa narzędzia do wysyłania mowy. Następnie możemy zainstalować espeak lub alternatywnie użyć
spd-say "Text"
.źródło
spd-say
.spd-say
Narzędzie jest instalowane domyślnie i działa w moim systemie.paplay /usr/share/sounds/freedesktop/stereo/complete.oga
używam
Zamień „make” na dowolne długotrwałe polecenie, którego używasz.
źródło
spd-say 'get back to work
„. I jest również wstępnie zainstalowany: releases.ubuntu.com/trusty/... , dla niewidomych, jak sądzę? I-w
dla nieskończonej pętli:while true; do spd-say -w 'get back to work you lazy bum'; done
.TL; DR
Aby odtworzyć dźwięk po zakończeniu polecenia:
(gdzie
sn3
jest dźwięk numer 3) wstaw to.bashrc
:Lub przeczytaj poniżej, aby uzyskać więcej opcji:
Inny dźwięk błędu i sukcesu
Oto, czego używam do tego, o co prosisz - z jedną różnicą: nie tylko odtwarza dźwięk po zakończeniu polecenia, ale odtwarza inny dźwięk po sukcesie i błędzie. (Ale możesz to zmienić, jeśli ci się nie podoba.)
Mam wywoływaną funkcję Bash
oks
, której używam na końcu długo działających poleceń:Odtwarza dźwięk i wyświetla komunikat OK lub ERROR (z kodem błędu) po zakończeniu poprzedniego polecenia.
Kod źródłowy
Oto ta funkcja z dwoma pomocnikami:
Instalacja
Możesz umieścić go bezpośrednio w ~ / .bashrc lub w innym pliku, a następnie umieścić ten wiersz w ~ / .bashrc:
Konfiguracja
Zmień
sound_ok
isound_error
na inne dźwięki.Możesz eksperymentować z
sound
vs.soundbg
i zmieniaćsound_ok
orazsound_error
używać sekwencji wielu dźwięków, które lubisz, aby uzyskać pożądany efekt.Dobre dźwięki
Aby znaleźć dobre dźwięki w systemie, możesz spróbować:
Oto niektóre dźwięki, których często używam i które są domyślnie dostępne na Ubuntu, które są dobre dla powiadomień - sn1 jest głośny i miły, sn2 jest bardzo głośny i wciąż całkiem miły, sn3 jest bardzo głośny i niezbyt miły:
Ponownie możesz zmienić
sound
na,soundbg
jeśli chcesz grać w tle, nie czekając na zakończenie dźwięku (np. Aby nie spowalniać skryptów podczas odtwarzania wielu dźwięków).Wersja cicha
I na wszelki wypadek - oto ta sama funkcja,
oks
ale bez dźwięków:Stosowanie
Oto jak z niego korzystasz:
Przykład z sukcesem:
przykład z błędem:
Oczywiście w praktyce polecenia są bardziej jak:
ale użyłem
ls
, żebyś mógł szybko zobaczyć, jak to działa.Możesz użyć
ok
zamiastoks
wersji cichej.Lub możesz użyć np .:
aby wydrukować OK / ERROR, ale zawsze odtwarzaj ten sam dźwięk itp.
Aktualizacja
Umieszczam te funkcje na GitHub, patrz:
Źródło można pobrać z:
Aktualizacja 2
Dodałem
soundloop
funkcję do powyższego repozytorium. Odtwarza dźwięk i może być przerwany przez Ctrl + C (w przeciwieństwie do prostegowhile true; do paplay file.ogg; done
, którego można by oczekiwać, ale nie działa), o co poprosił shadi w komentarzach. Jest realizowany jako:Jeśli uważasz, że to skomplikowane, skieruj swoje skargi do programistów PulseAudio.
źródło
while true; do paplay ...; done
tak, aby dźwięk się powtarzał, aż uderzyłemCtrl+C
, ale kiedy to zrobię, nie łamie się. Nie mogę znaleźć żadnych specjalnych opcji,man paplay
aby dowiedzieć się, jak to zrobić. Jakieś pomysły?Według tego
\a
postać ucieka kod ASCII 7, który jest sygnał komputera.Tak
echo $'\a'
działa, aby wydać dźwięk dźwiękowy na moim komputerze lokalnym, nawet jeśli jest on wykonywany w powłoce bash działającej na komputerze, do którego jestem podłączony za pośrednictwem interfejsu terminala, takiego jak PuTTY.źródło
Rozwijając odpowiedź Michaela Curriesa, możesz sprawić, że Bash wydrukuje znak
BEL
(\a
) poprzezPROMPT_COMMAND
:Ustawienie
PROMPT_COMMAND
tego sposobu spowoduje, że Bash wykona sięprintf \\a
na końcu każdego polecenia, co sprawi, że terminal odtworzy dźwięk (chociaż, jak wskazuje Muru, po prostu uruchomienie przerysowania zachęty spowoduje, że terminal odtworzy dźwięk, tj. Dźwięk zostanie odtworzony za każdym razem, gdy rysowany jest nowy monit, na przykład nawet po naciśnięciu ENTER).Jest to funkcja terminalu, więc może nie działać na wszystkich terminalach; na przykład nie działa w konsoli (ale jestem pewien, że działa w
gnome-terminal
ixterm
).źródło
Komenda
wydaje dźwięk. Najprostsze, ale irytujące rozwiązanie. :-)
Zapoznaj się z instrukcją
speaker-test(1)
dotyczącą opcji konfiguracji sygnału szumu.źródło
Nie o to prosiłeś, ale możesz użyć do tego powiadomienia.
Zamień polecenie podane w innych odpowiedziach na
źródło
Przykład 1:
echo alik && (say done ; echo done) || (echo error ; say error)
da gotowe słowo.Przykład 2:
non_existing_command_error && (say done ; echo done) || (echo error ; say error)
spowoduje powstanie słowa błędu.* Potrzeby
gnustep-gui-runtime
-Twoje zdrowie.
źródło
Stworzyłem prosty i prawie natywny skrypt, który odtwarza dźwięk i wyświetla powiadomienie z podaną wiadomością i czasem dla Ubuntu ( Gist ):
Jak używać?
Pierwsze uruchomienie - konfiguracja:
Utwórz nowy katalog w domu i zadzwoń
noti
Pobierz noti.sh i wypakuj go do powyższego katalogu
noti
.Otwórz Terminal i zmień katalog na
noti
Uczyń noti.sh wykonywalnym, wydając:
Uruchom test w następujący sposób:
Przykłady
Powiadomienie o zakończeniu procesu (przykład)
źródło
fala sinusoidalna ffmpeg
Dla minimalistów, możesz grać sinusoidą 1000 Hz przez 5 sekund:
lub na zawsze, dopóki nie zrobisz Ctrl + C:
Więcej informacji na: https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684
Testowane w Ubuntu 18.04, ffmpeg 3.4.6.
źródło