La insignia del icono del Dock Terminal indica el número de campanas (Control-G, ASCII BEL) escritas en los terminales en segundo plano. Indica el número de campanas "no leídas":
Si la barra de pestañas está visible, verá el ícono correspondiente de "campana" en la pestaña de cada terminal con las campanas "no leídas":
Esto se muestra cuando cualquier cosa se escribe en un terminal en segundo plano y, como el indicador de campana, se borra cuando activa la ventana / pestaña de ese terminal. También se muestra una elipsis de "texto no leído" en las ventanas de terminal minimizadas en el Dock:
Por supuesto, eso puede sonar mucho, incluso para las líneas inicialmente mostradas por tail
(por defecto, diez). Esta versión omite las líneas iniciales y también evita los pitidos más de una vez cada tres segundos:
# Notify the user when there's activity on stdin.
function activity_notification
{
# Skip the first ten lines (the default for tail)
for ((skip = 0; skip < 10; ++skip)) do read; done;
# Beep when there are new lines.
while read; do
printf '\a';
# Throttle: Ignore activity for the next three seconds. If the
# data contains a BEL (Control-G), stop waiting.
read -d $'\a' -t 3;
done
}
tail -F /var/log/system.log | tee >(activity_notification)
Después de leer una línea y emitir un BEL, le dice a read
que lea todas las entradas hasta que se lea el carácter especificado o pasen tres segundos. Puede configurar el delimitador a NUL ASCII ( read -d ''
con una cadena vacía hará que use NUL), lo cual es poco probable (¿imposible?) Para aparecer en el archivo de registro del sistema, pero elegí usar BEL como delimitador que si el archivo contiene BEL, también emitirán un pitido.