echo
började inom Multics. Efter att den programmerats i C av Doug McIlroy som en ”fingerövning” och visat sig vara användbar, blev den en del av Version 2 Unix. echo -n
i version 7 ersatte prompt
, (som beter sig som echo
men utan att avsluta dess produktion med en linjeavgränsare).
På PWB / UNIX och senare startade Unix System III echo
att expandera C-escape-sekvenser som \n
med den anmärkningsvärda skillnaden att oktala flykt-sekvenser uttrycktes som \0ooo
istället för \ooo
i C.
Åttonde utgåvan Unix echo
gjorde bara escape-expansionen när den passerade ett -e
-alternativ, och det beteendet kopierades av några andra implementeringar som t.ex. det inbyggda echo
-kommandot för Bash eller zsh och GNU echo
.
På MS-DOS är kommandot tillgängligt i version 2 och senare.
Numera finns flera inkompatibla implementeringar av echo
på olika operativsystem (ofta flera på samma system), några av dem utvidgar escape-sekvenser som standard, andra inte, andra accepterar alternativ (listan som varierar med implementeringar), andra inte.
POSIX-specifikationen för echo
lämnar beteendet ospecificerat om det första argumentet är -n
eller något argument innehåller bakåtvänd snedstreck medan Unix-specifikationen (XSI-alternativet i POSIX) mandatar expansion av (vissa) sekvenser och tillåter inte bearbetning av alternativ. I praktiken är många echo
-implementationer inte kompatibla i standardmiljön.
På grund av dessa beteendevariationer echo
betraktas som ett icke-bärbart kommando på Unix-liknande system och printf
-kommandot (där tillgängligt, introducerat av Nionde upplagan Unix) föredras istället.