echo (polecenie)

echo rozpoczęło się w Multics. Po zaprogramowaniu go w C przez Douga McIlroya jako „ćwiczenie na palec” i udowodnieniu jego użyteczności, stało się częścią wersji 2 Unix. echo -n w wersji 7 zastąpił prompt, (który zachowywał się jak echo, ale bez przerywania jego wyjścia z separatorem linii).

Na platformie PWB / UNIX i nowszych Unix System III echo zaczął rozszerzać sekwencje specjalne C, takie jak \n z zauważalną różnicą, że ósemkowe sekwencje specjalne zostały wyrażone jako \0ooo zamiast \ooo w C.

Ósma edycja Unix echo rozwinęła się dopiero po przekazaniu opcji -e, a to zachowanie zostało skopiowane przez kilka innych implementacji, takich jak wbudowane echo polecenie Bash lub zsh i GNU echo.

W systemie MS-DOS polecenie jest dostępne w wersjach 2 i nowszych.

Obecnie kilka niekompatybilnych implementacji echo istnieje w różnych systemach operacyjnych (często kilka w tym samym system), niektóre z nich domyślnie rozszerzają sekwencje specjalne, inne nie, niektóre akceptują opcje (których lista różni się w zależności od implementacji), a niektóre nie.

Specyfikacja POSIX echo pozostawia zachowanie nieokreślone, jeśli pierwszy argument to -n lub jakikolwiek argument zawiera znaki ukośnika odwrotnego, podczas gdy specyfikacja Unix (opcja XSI w POSIX) nakazuje rozwinięcie z (niektórych) sekwencji i nie pozwala na żadne przetwarzanie opcji. W praktyce wiele echo implementacji nie jest zgodnych w środowisku domyślnym.

Z powodu tych różnic w zachowaniu echo jest uważane za nieprzenośne polecenie w systemach uniksopodobnych, a zamiast tego preferowane jest polecenie printf (jeśli jest dostępne, wprowadzone przez dziewiątą edycję Unix).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *