Echo (Befehl) - echo (command)

Echo
Sleepunix.png
Der echoBefehl unter Unix
Originalautor(en) Douglas McIlroy
( AT&T Bell Laboratories )
Entwickler Verschiedene Open-Source- und kommerzielle Entwickler
Betriebssystem Multics , Unix , Unix-like , V , Plan 9 , Inferno , FLEX , TRIPOS , AmigaDOS , Z80-RIO , OS-9 , DOS , MSX-DOS , Panos , FlexOS , SISNE plus , OS/2 , Windows , ReactOS , MPE/iX , KolibriOS , SymbOS
Plattform Plattformübergreifend
Typ Befehl

In der Berechnung , echoist ein Befehl , der die Zeichenfolgen ausgibt, die sie als übergeben werden , Argumente . Es ist ein Befehl, der in verschiedenen Betriebssystem- Shells verfügbar ist und normalerweise in Shell-Skripten und Batch-Dateien verwendet wird, um Statustext auf dem Bildschirm oder einer Computerdatei oder als Quellteil einer Pipeline auszugeben .

Implementierungen

Der Befehl ist in den folgenden Betriebssystemen verfügbar:

Viele Shells, darunter alle Bourne- ähnlichen (wie Bash oder zsh ) und Csh- ähnlichen Shells sowie COMMAND.COM und cmd.exe implementieren echoals eingebauten Befehl .

Der Befehl ist auch in der EFI-Shell verfügbar .

Geschichte

echobegann innerhalb von Multics . Nachdem es von Doug McIlroy als "Fingerübung" in C programmiert wurde und sich als nützlich erwies, wurde es Teil von Version 2 Unix . in Version 7 ersetzt , (verhielt sich wie, aber ohne die Ausgabe mit einem Zeilentrennzeichen zu beenden). echo -npromptecho

Auf PWB / UNIX und später Unix System III , echoerweitern gestartet C - Escape - Sequenzen wie \nmit dem bemerkenswerten Unterschied , dass Oktal - Escape - Sequenzen exprimiert wurden \0ooostatt \oooin C.

Achte Edition Unix echo führte die Escape-Erweiterung nur durch, wenn eine -eOption übergeben wurde, und dieses Verhalten wurde von einigen anderen Implementierungen wie dem eingebauten echoBefehl von Bash oder zsh und GNU kopiert echo.

Unter MS-DOS ist der Befehl in Version 2 und höher verfügbar.

Heutzutage existieren mehrere inkompatible Implementierungen von echoauf verschiedenen Betriebssystemen (oft mehrere auf demselben System), einige von ihnen erweitern standardmäßig Escape-Sequenzen, andere nicht, einige akzeptieren Optionen (deren Liste je nach Implementierung variiert), einige von ihnen nicht.

Die POSIX- Spezifikation von echolässt das Verhalten unspezifiziert, wenn das erste Argument ist -noder irgendein Argument Backslash-Zeichen enthält, während die Unix-Spezifikation (XSI-Option in POSIX) die Erweiterung von (einigen) Sequenzen vorschreibt und keine Optionsverarbeitung zulässt. In der Praxis sind viele echoImplementierungen in der Standardumgebung nicht konform.

Aufgrund dieser Verhaltensvariationen wird echoes auf Unix-ähnlichen Systemen als nicht tragbarer Befehl angesehen und der printfBefehl (wo verfügbar, eingeführt von Ninth Edition Unix) stattdessen bevorzugt.

Anwendungsbeispiele

C:\>echo Hello world
Hello world

Unter Verwendung von ANSI-Escape-Code- SGR- Sequenzen können kompatible Terminals farbigen Text ausdrucken.

Verwenden einer Implementierung im Stil von UNIX System III :

BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`

NORMAL=`echo "\033[m"`

Oder eine Implementierung im Stil von Unix Version 8 (wie Bash, wenn nicht im Unix-Konformitätsmodus):

BGRED=`echo -e "\033[41m"`
FGBLUE=`echo -e "\033[35m"`
BGGREEN=`echo -e "\033[42m"`

NORMAL=`echo -e "\033[m"`

und danach:

echo "${FGBLUE} Text in blue ${NORMAL}"
echo "Text normal"
echo "${BGRED} Background in red"
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"

Tragbar mit printf:

BGRED=`printf '\33[41m'`
NORMAL=`printf '\33[m'`
printf '%s\n' "${BGRED}Text on red background${NORMAL}"

Siehe auch

Verweise

Weiterlesen

Externe Links