echo
begon binnen Multics. Nadat het door Doug McIlroy in C was geprogrammeerd als een “vingeroefening” en nuttig bleek te zijn, werd het onderdeel van Versie 2 Unix. echo -n
verving in versie 7 prompt
, (die zich gedroeg als echo
maar zonder de uitvoer te beëindigen met een lijnscheidingsteken).
Op PWB / UNIX en later Unix System III, echo
begon C-escape-reeksen uit te breiden, zoals \n
met het opmerkelijke verschil dat octale escape-reeksen werden uitgedrukt als \0ooo
in plaats van \ooo
in C.
Achtste editie Unix echo
deed alleen de ontsnappingsuitbreiding wanneer een -e
-optie werd doorgegeven, en dat gedrag werd gekopieerd door een paar andere implementaties, zoals het ingebouwde echo
commando van Bash of zsh en GNU echo
.
Op MS-DOS is het commando beschikbaar in versie 2 en later.
Tegenwoordig bestaan er verschillende incompatibele implementaties van echo
op verschillende besturingssystemen (vaak meerdere op dezelfde systeem), sommige breiden standaard escape-sequenties uit, sommige niet, sommige accepteren opties (waarvan de lijst varieert met implementaties), sommige niet.
De POSIX-specificatie van echo
laat het gedrag ongespecificeerd als het eerste argument -n
is of elk argument backslash-tekens bevat terwijl de Unix-specificatie (XSI-optie in POSIX) de uitbreiding verplicht stelt van (sommige) sequenties en staat geen optieverwerking toe. In de praktijk zijn veel echo
implementaties niet compatibel in de standaardomgeving.
Vanwege deze variaties in gedrag, echo
wordt beschouwd als een niet-draagbaar commando op Unix-achtige systemen en het printf
commando (indien beschikbaar, geïntroduceerd door Ninth Edition Unix) heeft in plaats daarvan de voorkeur.