Echo: Unterschied zwischen den Versionen
K Textersetzung - „Linux:Shell:Bash:Interaktiv“ durch „Bash:Interaktiv“ |
K Textersetzung - „Bash/Builtins“ durch „Bash/Builtin“ Markierung: Manuelle Zurücksetzung |
||
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''echo''' gib ZEICHENKETTE(n) auf Standardausgabe aus. | '''echo''' gib ZEICHENKETTE(n) auf Standardausgabe aus. | ||
= Beschreibung = | = Beschreibung = | ||
Zeile 20: | Zeile 22: | ||
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. | 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. | 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 === | === Optionen === | ||
Zeile 111: | Zeile 113: | ||
|} | |} | ||
= | = Anwendung = | ||
== echo == | == echo == | ||
Die Option -n unterdrückt den Zeilenumbruch und -e erzwingt die Auswertung Escape-Sequenzen: | Die Option -n unterdrückt den Zeilenumbruch und -e erzwingt die Auswertung Escape-Sequenzen: | ||
Zeile 138: | Zeile 140: | ||
done | done | ||
== | == Textzeile auf der Standardausgabe ausgeben == | ||
$ echo Hallo Welt | $ echo Hallo Welt | ||
Gibt den folgenden Text aus: | Gibt den folgenden Text aus: | ||
Zeile 148: | Zeile 150: | ||
echo seinen Wert: | echo seinen Wert: | ||
$ echo The value of variable x = $x | $ 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 | |||
== 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 | |||
== Zeilenwechsel == | |||
Mit der Option '\n' - Neue Zeile mit Rücktaste-Interpretor '-e' wird eine neue Zeile dort behandelt, wo sie verwendet wird | |||
== 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" | $ echo -e "Sehr \ngeehrte \nDamen \nund \nHerren" | ||
Sehr | Sehr | ||
geehrte | geehrte | ||
Damen | Damen | ||
und | und | ||
Herren | Herren | ||
== Tabulatoren == | |||
== Verwenden Sie die Option '\t' - horizontale Registerkarte mit Rücktaste-Interpretor '-e', um horizontale Registerkarten zu erhalten | Verwenden Sie die Option '\t' - horizontale Registerkarte mit Rücktaste-Interpretor '-e', um horizontale Registerkarten zu erhalten | ||
$ echo -e "Sehr \tgeehrte \tDamen \tund \tHerren" | $ echo -e "Sehr \tgeehrte \tDamen \tund \tHerren" | ||
Sehr geehrte Damen und Herren | Sehr geehrte Damen und Herren <br /> | ||
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" | $ echo -e "\n\tSehr \n\tgeehrte \n\tDamen \n\tund \n\tHerren" | ||
Sehr | Sehr | ||
geehrte | geehrte | ||
Zeile 182: | Zeile 182: | ||
und | und | ||
Herren | 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" | $ echo -e "\vSehr \vgeehrte \vDamen \vund \vHerren" | ||
Zeile 191: | Zeile 190: | ||
und | und | ||
Herren | 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" | $ echo -e "\n\vSehr \n\vgeehrte \n\vDamen \n\vund \n\vHerren" | ||
Sehr | Sehr | ||
geehrte | geehrte | ||
Damen | Damen | ||
und | und | ||
Herren | Herren | ||
== Drucken Sie alle Dateien / Ordner mit dem Befehl echo (ls command alternative) | == Alle Dateien und Ordner ausgeben == | ||
Drucken Sie alle Dateien / Ordner mit dem Befehl echo (ls command alternative) | |||
$ echo * | $ 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 | 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 | $ echo *.jpeg | ||
network.jpeg | network.jpeg | ||
= Links = | = Links = | ||
# https://wiki.ubuntuusers.de/echo/ | # https://wiki.ubuntuusers.de/echo/ | ||
[[Kategorie:Linux/Befehl]] | |||
[[Kategorie:Bash/Builtin]] | |||
[[Kategorie:Bash/Scripting]] | |||
[[Kategorie:Bash/Interaktiv]] | |||
[[ | |||
[[ | |||
[[ | |||
[[ |
Aktuelle Version vom 21. September 2024, 22:43 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