Em uma janela de terminal do konsole fora da tela, executando um shell bash com TERM definido como konsole-256color se eu digitar:
echo -n $'\a'
ou
echo -n $'\eg'
ou
./ringbell.sh
onde o conteúdo de ringbell.sh
é
#!/bin/bash
echo -n $'\eg'
echo -n $'\a'
Todos eles resultam no disparo da campainha de áudio configurada. Se eu entrar em uma sessão de tela (meu ~/.screenrc
também define TERM=konsole-256color
), apenas o segundo dos 3 comandos acima ( echo -n $'\eg'
) fará com que a campainha de áudio seja ouvida. Preciso modificar o script ou isso é um problema screen
?
Eu uso screen
4.1.0~20120320gitdb59704-9
do Ubuntu.
Responder1
De memória, Ctrl-G é o caractere do sino, então acho que é por isso que o segundo funcionou. Mas screen pode ser exigente quanto aos caracteres que aceita, pois usa Ctrl-A como código de comando.
Experimente isso
#!/bin/sh
# Ring the terminal bell
# echo "\a" # does not work in some shells
tput bel
Eu encontrei isso emcódigo roseta, espero que isso lhe dê algumas opções
Responder2
Melhor solução:printf '\a'
Isso ocorre porque o printf
integrado na maioria dos shells funciona bem e também há uma versão executável equivalente printf
instalada em sistemas Linux/Mac.
Outras opções: Se você tiver o Curses instalado, também poderá usar: tput bel
Se usar uma versão recente do bash, poderá usar:echo -e '\a'