echo
begann in Multics. Nachdem es von Doug McIlroy als „Fingerübung“ in C programmiert worden war und sich als nützlich erwiesen hatte, wurde es Teil von Version 2 Unix. echo -n
in Version 7 ersetzte prompt
(das sich wie echo
verhielt, jedoch ohne die Ausgabe zu beenden mit einem Zeilenbegrenzer).
Unter PWB / UNIX und höher unter Unix System III begann echo
mit der Erweiterung von C-Escape-Sequenzen wie \n
mit dem bemerkenswerten Unterschied, dass oktale Escape-Sequenzen als \0ooo
anstelle von \ooo
in C
Achte Edition Unix echo
hat die Escape-Erweiterung nur ausgeführt, wenn eine -e
-Option übergeben wurde, und dieses Verhalten wurde von einigen anderen Implementierungen wie z Der integrierte Befehl echo
von Bash oder zsh und GNU echo
.
Unter MS-DOS ist der Befehl verfügbar in Versionen 2 und höher.
Heutzutage existieren mehrere inkompatible Implementierungen von echo
auf verschiedenen Betriebssystemen (oft mehrere auf demselben) System), einige von ihnen erweitern standardmäßig Escape-Sequenzen, einige nicht, einige akzeptieren Optionen (deren Liste je nach Implementierung variiert), andere nicht.
Die POSIX-Spezifikation von echo
lässt das Verhalten nicht angegeben, wenn das erste Argument -n
ist oder ein Argument Backslash-Zeichen enthält, während die Unix-Spezifikation (XSI-Option in POSIX) die Erweiterung vorschreibt von (einigen) Sequenzen und erlaubt keine Optionsverarbeitung. In der Praxis sind viele echo
-Implementierungen in der Standardumgebung nicht kompatibel.
Aufgrund dieser Verhaltensunterschiede ist echo
wird auf Unix-ähnlichen Systemen als nicht portabler Befehl angesehen, und stattdessen wird der Befehl printf
(sofern verfügbar, eingeführt von Nix Edition Unix) bevorzugt.