In einem Konsolen-Terminalfenster außerhalb des Bildschirms, in dem eine Bash-Shell mit TERM auf konsole-256color eingestellt ausgeführt wird, gebe ich Folgendes ein:
echo -n $'\a'
oder
echo -n $'\eg'
oder
./ringbell.sh
wobei der Inhalt von ringbell.sh
ist
#!/bin/bash
echo -n $'\eg'
echo -n $'\a'
Sie alle führen dazu, dass der konfigurierte Signalton ertönt. Wenn ich eine Bildschirmsitzung starte (meine ~/.screenrc
setzt auch TERM=konsole-256color
), führt nur der zweite der drei obigen Befehle ( echo -n $'\eg'
) dazu, dass der Signalton ertönt. Muss ich das Skript ändern oder ist das ein Problem mit screen
?
Ich verwende es screen
4.1.0~20120320gitdb59704-9
von Ubuntu.
Antwort1
Soweit ich mich erinnere, ist Strg-G das Glockenzeichen, deshalb funktionierte vermutlich das zweite. Aber der Bildschirm kann wählerisch sein, was die Zeichen angeht, die er akzeptiert, da er Strg-A als Befehlscode verwendet.
Versuche dies
#!/bin/sh
# Ring the terminal bell
# echo "\a" # does not work in some shells
tput bel
Ich fand dies aufrosettacode, hoffentlich gibt es Ihnen einige Optionen
Antwort2
Beste Lösung:printf '\a'
Dies liegt daran, dass die in den meisten Shells integrierte Version gut funktioniert und auf Linux-/Mac-Systemen printf
auch eine entsprechende ausführbare Version installiert ist .printf
Andere Optionen: Wenn Sie Curses installiert haben, können Sie auch Folgendes verwenden: tput bel
Wenn Sie eine aktuelle Version von Bash verwenden, können Sie Folgendes verwenden:echo -e '\a'