En una ventana de terminal de konsole fuera de la pantalla ejecutando un shell bash con TERM configurado en konsole-256color si escribo:
echo -n $'\a'
o
echo -n $'\eg'
o
./ringbell.sh
donde el contenido de ringbell.sh
es
#!/bin/bash
echo -n $'\eg'
echo -n $'\a'
Todos ellos provocan que suene la campana de audio configurada. Si entro en una sesión de pantalla (mi ~/.screenrc
también configura TERM=konsole-256color
), solo el segundo de los 3 comandos anteriores ( echo -n $'\eg'
) hace que se escuche la campana de audio. ¿Tengo que modificar el script o es un problema screen
?
Yo uso screen
4.1.0~20120320gitdb59704-9
desde Ubuntu.
Respuesta1
De memoria, Ctrl-G es el carácter de campana, así que creo que por eso funcionó el segundo. Pero la pantalla puede ser exigente con los caracteres que acepta, ya que toma Ctrl-A como código de comando.
Prueba esto
#!/bin/sh
# Ring the terminal bell
# echo "\a" # does not work in some shells
tput bel
encontré esto encódigo rosetta, con suerte te dará algunas opciones.
Respuesta2
Mejor solución:printf '\a'
Esto se debe a que el printf
integrado en la mayoría de los shells funciona bien y también hay una versión ejecutable equivalente printf
instalada en los sistemas Linux/Mac.
Otras opciones: Si tienes curses instalados, también puedes usar: tput bel
Si usas una versión reciente de bash, entonces puedes usar:echo -e '\a'