GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mechanismus des Glockenzeichens „\a“?

Ich lese ein Buch über Shell-Programmierung und erfahre, dass die folgenden Befehle gleichwertig sind, die auf meinem Mac piepen, aber auf Ubuntu keinen Ton erzeugen:

$ echo $'\a'

$ echo -e "\a"

$

In beiden Fällen fordert das Terminal jedoch eine Leerzeile auf. Meine Fragen sind:

  1. Was ist $'\a' hier? Parametererweiterung, Befehlsersetzung oder etwas anderes?
  2. Warum echo gibt eine leere Zeile aus, als ob der Parameter undefiniert wäre, wie zum Beispiel im Fall von

$ echo $NONSENSE was fordert eine leere Zeile auf? Danke!

Akzeptierte Antwort:

unter Ubuntu keinen Ton machen:

vielleicht, weil Ihr spezieller Terminal-Emulator so konfiguriert ist, dass er Töne vermeidet, oder weil der pcspkr Kernel-Modul wird entladen usw. Sie könnten einen anderen Terminal-Emulator verwenden (z. B. den alten xterm ), was piepen sollte.

Was ist $'\a' hier?

Lesen Sie das Kapitel zur Shell-Erweiterung des Bash-Handbuchs. Es wird ANSI-C-Quoting genannt (wie von South Parker kommentiert).

Warum echo eine leere Zeile ausgibt

das echo Befehl (weiterlesen echo(1)…) ist oft eine eingebaute Bash-Shell (ohne -n ) gibt es seine erweiterten Argumente (hier das Glockenzeichen) gefolgt von einem Zeilenumbruch aus. Aber Ihr Terminal-Emulator läutet nicht die akustische Glocke (und das Glockenzeichen ist nicht angezeigt, da es sich um ein Steuerzeichen handelt)

Übrigens wird gemunkelt, dass Apple die GPLv3+-Lizenz nicht mag, also sollten Sie Ihre bash aktualisieren auf eine neuere Version (z. B. 4.4 im August 2017) auf Ihrem Apple-Computer.

Sie könnten das entmystifizierte tty für einen historischen Ansatz zu Terminalemulatoren unter Unix lesen. Siehe auch pty(7).


Linux
  1. Kann Bash in seinen eigenen Eingabestrom schreiben?

  2. Bashscript funktioniert vom Terminal, aber nicht von Crontab?

  3. Was bedeutet Echo $? Tun??

  4. Ist es möglich, mit Ansi-Escape-Codes ein Zeichen am Terminal-Cursor zu erhalten?

  5. Wie erstelle ich eine Rotationsanimation mit Shell-Skript?

Warum ich rxvt als Terminal verwende

Begeben Sie sich in Ihrem Linux-Terminal auf ein Abenteuer

16 Beispiele für Echo-Befehle unter Linux

So verwenden Sie Instagram im Terminal

Terminal-Pager

Clearing-Terminal