Eu iniciei um longo processo através de um terminal. É possível fazer o terminal Ubuntu emitir um som depois que o processo estiver concluído? Dessa forma, não preciso continuar verificando, mas serei notificado através de um som.
command-line
notification
Goleiro444
fonte
fonte
Respostas:
Há pelo menos três formas de linha de comando para fazer isso, colocando o comando de adequação no final do seu script, que você pode invocar para o longo processo:
A maneira "clássica" de tocar um som é usar o sinal sonoro nos alto-falantes do PC. No entanto, isso não funcionará em todos os casos (por exemplo, no meu sistema, os alto-falantes do PC estão completamente desativados) e você precisará remover o pscpkr
/etc/modprobe/blacklist.conf
e carregar opcspkr
módulo do kernel.Também podemos reproduzir qualquer arquivo de som no formato wav usando o aplay (instalado por padrão):
Outra maneira é usar a interface da linha de comandos pulseaudio para permitir a reprodução de qualquer arquivo de som que o seu sistema (in
libsndfile
) reconheça na saída de áudio padrão:Podemos usar arquivos de som padrão
/usr/share/sounds/
ou qualquer outro arquivo de som que possamos ter em um local diferente.Só para mencionar, há outra maneira agradável de fazer isso usando o espeak , que é instalado por padrão no Ubuntu <= 12.04. Veja, ou melhor, ouça o seguinte exemplo:
No Ubuntu> = 12.10, o Orca usa o speak-dispatcher. Podemos instalar o espeak ou, alternativamente, usar
spd-say "Text"
.fonte
spd-say
.spd-say
utilitário está instalado por padrão e funciona no meu sistema.paplay /usr/share/sounds/freedesktop/stereo/complete.oga
eu uso
Substitua "make" por qualquer comando de longa duração que você usar.
fonte
spd-say 'get back to work
' E vem pré-instalado também: releases.ubuntu.com/trusty/… , para pessoas cegas, suponho? E-w
para loops infinitos:while true; do spd-say -w 'get back to work you lazy bum'; done
.TL; DR
Para reproduzir um som após a conclusão do comando:
(onde
sn3
está o som número 3) coloque isso em.bashrc
:Ou leia abaixo para mais opções:
Som diferente em caso de erro e sucesso
Aqui está o que eu uso exatamente para o que você solicita - com uma diferença: ele não apenas reproduz um som quando o comando termina, mas reproduz um som diferente em caso de sucesso e erro. (Mas você pode alterá-lo se não gostar.)
Eu tenho uma função Bash chamada
oks
que eu uso no final de comandos de longa execução:Toca um som e exibe OK ou ERROR (com código de erro) quando o comando anterior termina.
Código fonte
Aqui está essa função com dois ajudantes:
Instalação
Você pode colocá-lo em seu ~ / .bashrc diretamente ou em algum outro arquivo e, em seguida, colocar esta linha em seu ~ / .bashrc:
Configuração
Mude
sound_ok
esound_error
para outros sons.Você pode experimentar
sound
vs.soundbg
e alterarsound_ok
esound_error
usar seqüências de muitos sons que você gosta para obter o resultado desejado.Bons Sons
Para encontrar bons sons no seu sistema, você pode tentar:
Aqui estão alguns sons que eu costumo usar, disponíveis por padrão no Ubuntu, que são bons para notificações - sn1 é alto e agradável, sn2 é muito alto e ainda é bastante agradável, sn3 é extremamente alto e não é tão legal:
Novamente, você pode mudar
sound
parasoundbg
se quiser reproduzi-lo em segundo plano sem esperar o som terminar (por exemplo, para não diminuir a velocidade dos seus scripts quando você reproduz muitos sons).Versão silenciosa
E apenas no caso - aqui está a mesma função,
oks
mas sem sons:Uso
Aqui está como você o usa:
Exemplo com sucesso:
exemplo com erro:
Obviamente, na prática, os comandos são mais parecidos com:
mas eu usei
ls
para que você pudesse ver rapidamente como funciona.Você pode usar em
ok
vez deoks
para uma versão silenciosa.Ou você pode usar, por exemplo:
para imprimir OK / ERRO, mas sempre toque o mesmo som, etc.
Atualizar
Eu coloquei essas funções no GitHub, veja:
A fonte pode ser baixada em:
Atualização 2
Eu adicionei uma
soundloop
função ao repositório acima. Toca um som e pode ser interrompido por Ctrl + C (diferente de um simpleswhile true; do paplay file.ogg; done
que se esperaria que funcionasse, mas não funciona), conforme solicitado por shadi nos comentários. É implementado como:Se você acha que é complicado, encaminhe suas queixas aos desenvolvedores do PulseAudio.
fonte
while true; do paplay ...; done
para que o som se repita até que eu batoCtrl+C
, mas quando o faço, ele não quebra. Não consigo encontrar nenhuma opção especialman paplay
para descobrir como fazer isso funcionar. Alguma ideia?De acordo com isso, o
\a
caractere escapa ao código ASCII 7, que é o bipe do computador.Então,
echo $'\a'
funciona para emitir um sinal sonoro na minha máquina local, mesmo quando executado em um shell bash executando em um computador ao qual estou conectado através de uma interface de terminal como o PuTTY.fonte
Ao expandir a resposta de Michael Curries, você pode fazer com que o Bash imprima um caractere
BEL
(\a
) através dePROMPT_COMMAND
:Definir
PROMPT_COMMAND
essa maneira fará com que o Bash seja executadoprintf \\a
no final de cada comando, o que fará o terminal tocar um som (embora, como aponta muru, o simples acionamento do redesenho do prompt faça o terminal tocar o som, ou seja, o som será reproduzido. cada vez que um novo prompt é desenhado, por exemplo, mesmo quando apenas pressionando ENTER).Esse é um recurso do terminal, portanto pode não funcionar em todos os terminais; por exemplo, ele não funciona no console (mas tenho certeza de que funciona no
gnome-terminal
exterm
).fonte
O comando
emite um ruído. Solução mais simples, mas irritante. :-)
Veja o manual de
speaker-test(1)
opções para configurar o sinal de ruído.fonte
Não foi isso que você pediu, mas você pode usar a notificação para isso.
Substitua o comando fornecido nas outras respostas por
fonte
Exemplo 1:
echo alik && (say done ; echo done) || (echo error ; say error)
resultará em uma palavra pronta.Exemplo 2:
non_existing_command_error && (say done ; echo done) || (echo error ; say error)
resultará em uma palavra de erro.* Necessidades
gnustep-gui-runtime
-Felicidades.
fonte
Criei um script simples e quase nativo que reproduz o som e exibe uma notificação com uma mensagem e um horário para o Ubuntu ( Gist ):
Como usar?
Primeira execução - Configuração:
Crie um novo diretório em sua casa e chame-o
noti
Faça o download do noti.sh e extraia-o para o
noti
diretório acima .Abra Terminal e altere o diretório para
noti
Torne o noti.sh executável emitindo:
Execute um teste como este:
Exemplos
Para notificar o término do processo (exemplo)
fonte
onda senoidal ffmpeg
Para os minimalistas, você pode tocar um seno de 1000 Hz por 5 segundos:
ou para sempre até você pressionar Ctrl-C:
Mais informações em: https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684
Testado no Ubuntu 18.04, ffmpeg 3.4.6.
fonte