Echo: Unterschied zwischen den Versionen
Zeile 156: | Zeile 156: | ||
Verwenden Sie die Option '\b' - Rücktaste mit Backslash-Interpreter '-e', die alle dazwischen liegenden Leerzeichen entfernt | Verwenden Sie die Option '\b' - Rücktaste mit Backslash-Interpreter '-e', die alle dazwischen liegenden Leerzeichen entfernt | ||
$ echo -e "Sehr \bgeehrte \bDamen \bund \bHerren" | $ echo -e "Sehr \bgeehrte \bDamen \bund \bHerren" | ||
SehrgeehrteDamenundHerren | SehrgeehrteDamenundHerren | ||
== Zeilenwechsel == | == Zeilenwechsel == |
Version vom 25. Juni 2023, 02:19 Uhr
echo gib ZEICHENKETTE(n) auf Standardausgabe aus.
Beschreibung
echo gibt alle Argumente, getrennt durch ein Leerzeichen, und einen abschließenden Zeilenumbruch aus.
internes echo
- Die Befehle, die direkt von der Shell ausgeführt werden, werden als interne Befehle bezeichnet.
- Es gibt keinen separaten Prozess zum Ausführen dieser Befehle.
externes echo
/usr/bin/echo
- Die Befehle, die vom Kernel ausgeführt werden, werden als externe Befehle bezeichnet.
- Jeder Befehl hat seine eindeutige Prozess-ID
/usr/bin/echo
warum sollte ich es benutzen wollen:
- Sie verwenden nicht immer eine Shell. Unter verschiedenen Umständen führen Sie eine ausführbare Datei direkt und nicht über eine Shell aus.
- Zumindest theoretisch haben einige Muscheln kein eingebautes Echo. Dies ist eigentlich nicht erforderlich.
Ein weniger häufiger Grund, warum Sie /bin/echo absichtlich verwenden könnten, ist, wenn Sie sich auf die Unterschiede zwischen ihm und dem von Ihrer Shell bereitgestellten Echo-Befehl verlassen.
Echo ist nicht sehr portabel, da unterschiedliche Implementierungen - sowohl über Betriebssysteme als auch über Shells auf demselben Betriebssystem hinweg - unterschiedliche Optionen (z. B. -e) unterstützen und sich in ihrer Behandlung von Backslashes unterscheiden.
Optionen
Options | Description |
---|---|
-n | Drucken Sie die nachfolgende neue Zeile nicht |
-e | Aktivieren Sie die Interpretation von Backslash-Escapezeichen |
Escapesequenzen | Description |
---|---|
\b | Rücktaste "Backspace" |
\\ | Backslashs |
\n | Neue Zeile |
\r | Wagenrücklauf "carriage return" |
\t | Horizontaler Tab |
\v | Vertikaler Tab |
Installation
Syntax
echo [OPTION]... [ZEICHENKETTE]...
Parameter
Ohne -E werden die folgenden Sequenzen erkannt und berechnet
\NNN | Zeichen mit dem ASCII Code (oktal) |
\\ | Rückschrägstrich |
\a | Alarm (BEL) |
\b | Zeichen zurück |
\c | unterdrücke Zeilenvorschub am Ende |
\f | Seitenvorschub |
\n | Zeilenvorschub |
\r | Wagenrücklauf |
\t | horizontaler Tabulatorstopp |
\v | vertikaler Tabulatorstopp |
Optionen
-n | gib keinen Zeilenvorschub am Ende der Zeile aus |
-e | ermögliche Interpretation der \-Notationen unten |
-E | verhindere Interpolation einiger Sequenzen in ZKETTEn |
--help | gib diese Hilfe aus und beende das Programm |
--version | gib Versionsinformation aus und beende das Programm |
Anwendung
echo
Die Option -n unterdrückt den Zeilenumbruch und -e erzwingt die Auswertung Escape-Sequenzen:
echo "\a" \a echo -n "\a" \aecho -e "\a" PIEP
Das nächste Beispiel verwendet "\b", um den Cursor um eine Position zurück zu bewegen:
cat ticker #!/bin/sh declare -i zeit=0 echo -en "Sekunden: \t" while :; do for ((i=${#zeit}; i; i--)); do echo -en "\b" done echo -en $zeit zeit=zeit+1 sleep 1 done
Textzeile auf der Standardausgabe ausgeben
$ echo Hallo Welt
Gibt den folgenden Text aus:
Hallo Welt
Deklarieren Sie eine Variable und geben Sie ihren Wert wieder. Deklarieren Sie beispielsweise eine Variable von x und weisen Sie ihren Wert = 10 zu
$ x=10
echo seinen Wert:
$ echo The value of variable x = $x
The value of variable x = 10
Rücktaste mit Backslash-Interpreter
Verwenden Sie die Option '\b' - Rücktaste mit Backslash-Interpreter '-e', die alle dazwischen liegenden Leerzeichen entfernt
$ echo -e "Sehr \bgeehrte \bDamen \bund \bHerren" SehrgeehrteDamenundHerren
Zeilenwechsel
Mit der Option '\n' - Neue Zeile mit Rücktaste-Interpretor '-e' wird eine neue Zeile dort behandelt, wo sie verwendet wird
$ echo -e "Sehr \ngeehrte \nDamen \nund \nHerren" Sehr geehrte Damen und Herren
Tabulatoren
Verwenden Sie die Option '\t' - horizontale Registerkarte mit Rücktaste-Interpretor '-e', um horizontale Registerkarten zu erhalten
$ echo -e "Sehr \tgeehrte \tDamen \tund \tHerren" Sehr geehrte Damen und Herren
Wie wäre es, wenn Sie die Option Neue Zeile '\n' und die horizontale Registerkarte '\t' gleichzeitig verwenden
$ echo -e "\n\tSehr \n\tgeehrte \n\tDamen \n\tund \n\tHerren" Sehr geehrte Damen und Herren
Verwenden Sie die Option '\v' - vertikale Registerkarte mit Rücktaste-Interpretor '-e', um vertikale Tabulatoren zu erhalten
$ echo -e "\vSehr \vgeehrte \vDamen \vund \vHerren" Sehr geehrte Damen und Herren
Wie wäre es, wenn Sie die Option Neue Zeile '\n' und vertikale Registerkarte '\v' gleichzeitig verwenden
$ echo -e "\n\vSehr \n\vgeehrte \n\vDamen \n\vund \n\vHerren" Sehr geehrte Damen und Herren
Alle Dateien und Ordner ausgeben
Drucken Sie alle Dateien / Ordner mit dem Befehl echo (ls command alternative)
$ echo * 103.odt 103.pdf 104.odt 104.pdf 105.odt 105.pdf 106.odt 106.pdf 107.odt 107.pdf 108a.odt 108.odt 108.pdf 109.odt 109.pdf 110b.odt 110.odt 110.pdf 111.odt 111.pdf 112.odt 112.pdf 113.odt linux-headers- 3.16.0-customkernel_1_amd64.deb linux-image-3.16.0-customkernel_1_amd64.deb network.jpeg
Dateien nach Endung ausgeben
$ echo *.jpeg network.jpeg