echo
a început în Multics. După ce a fost programat în C de Doug McIlroy ca „exercițiu cu degetele” și s-a dovedit a fi util, a devenit parte a versiunii 2 Unix. echo -n
în versiunea 7 a înlocuit prompt
, (care s-a comportat ca echo
dar fără a-și termina ieșirea cu un delimitator de linie).
Pe PWB / UNIX și ulterior Unix System III, echo
a început să extindă secvențe de evadare C, cum ar fi \n
cu diferența notabilă că secvențele de scăpare octale au fost exprimate ca \0ooo
în loc de \ooo
în C.
Ediția a opta Unix echo
a făcut expansiunea de evacuare numai când a trecut o opțiune -e
, iar acel comportament a fost copiat de alte câteva implementări, cum ar fi comanda integrată echo
a lui Bash sau zsh și GNU echo
.
Pe MS-DOS, comanda este disponibilă în versiunile 2 și ulterioare.
În zilele noastre, există mai multe implementări incompatibile ale echo
pe diferite sisteme de operare (adesea mai multe pe același sistem) sistem), unele dintre ele extindând secvențele de evadare în mod implicit, altele nu, unele acceptând opțiuni (a căror listă variază în funcție de implementări), altele nu.
Specificația POSIX a echo
lasă comportamentul nespecificat dacă primul argument este -n
sau orice argument conține caractere de bară inversă în timp ce specificația Unix (opțiunea XSI în POSIX) impune extinderea de (unele) secvențe și nu permite nicio opțiune de procesare. În practică, multe echo
implementări nu sunt conforme în mediul implicit.
Datorită acestor variații de comportament, echo
este considerată o comandă neportabilă pe sisteme de tip Unix și este preferată comanda printf
(acolo unde este disponibilă, introdusă de ediția a IX-a Unix).