echo
begyndte inden for Multics. Efter at det var programmeret i C af Doug McIlroy som en “fingerøvelse” og viste sig at være nyttig, blev det en del af Version 2 Unix. echo -n
i version 7 erstattede prompt
, (som opførte sig som echo
men uden at afslutte dens output med en linjeafgrænser).
På PWB / UNIX og senere startede Unix System III echo
med at udvide C escape-sekvenser såsom \n
med den bemærkelsesværdige forskel, at oktale flugtsekvenser blev udtrykt som \0ooo
i stedet for \ooo
i C.
Ottende udgave Unix echo
undslap kun ekspansionsudvidelsen, da den blev godkendt -e
, og denne adfærd blev kopieret af et par andre implementeringer som f.eks. den indbyggede echo
kommando for Bash eller zsh og GNU echo
.
På MS-DOS er kommandoen tilgængelig i version 2 og senere.
I dag findes der flere inkompatible implementeringer af echo
på forskellige operativsystemer (ofte flere på samme system), nogle af dem udvider escape-sekvenser som standard, nogle af dem ikke, nogle accepterer indstillinger (listen over der varierer med implementeringer), andre ikke.
POSIX-specifikationen for echo
efterlader adfærden uspecificeret, hvis det første argument er -n
eller ethvert argument indeholder tilbageslagstegn, mens Unix-specifikationen (XSI-indstilling i POSIX) mandaterer udvidelsen af (nogle) sekvenser og tillader ikke behandling af optioner. I praksis er mange echo
implementeringer ikke kompatible i standardmiljøet.
På grund af disse variationer i adfærd er echo
betragtes som en ikke-bærbar kommando på Unix-lignende systemer, og printf
-kommandoen (hvis tilgængelig, introduceret af 9. udgave Unix) foretrækkes i stedet.