Команда echo является встроенной командой командной оболочки, позволяющей выводить произвольные строки (вы можете обнаружить аналоги данной команды в таких языках программирования, как Perl и PHP). Стоит упомянуть о том, что в подавляющем большинстве систем по умолчанию также установлена одноименная утилита, предназначенная для той же цели, но работающая немного по-другому. По этой причине следует всегда использовать либо встроенную команду, либо внешнюю утилиту.
Базовый синтаксис команды выглядит следующим образом:
$ echo [параметры] строка
Строка может быть представлена как в форме множества аргументов-слов, так и в форме одного аргумента, причем в этом случае при наличии в ней пробелов она должна помещаться в двойные кавычки. Команда поддерживает ровно два параметра, а именно, параметр -n, позволяющий не использовать символ перехода на новую строку после вывода строки и параметр -e, позволяющий обрабатывать управляющие последовательности в рамках строки. Команда поддерживает следующие управляющие последовательности:
Последовательность | Назначение |
\b |
Удаление предыдущего символа |
\\ |
Вставка символа слэша |
\n |
Вставка символа перехода на новую строку |
\r |
Вставка символа возврата каретки |
\t |
Вставка символа табуляции |
\v |
Вставка символа вертикальной табуляции |
\0NNN |
Вставка ASCII-символа номер NNN (номер задается в восьмеричном формате) |
Помимо этого команда может использоваться для вывода значений переменных в сценариях.
Для простого вывода строки команда может использоваться без каких-либо параметров:
- $ echo Hello, Alex
- Hello, Alex
Аналогичная команда с единственным аргументом:
- $ echo "Hello, Alex"
- Hello, Alex
Еще один вариант команды, на этот раз с управляющими последовательностями:
- $ echo -en "Hello,\040Alex\n"
- Hello, Alex
В данном случае необходимо использовать параметр -e, управляющая последовательность \n добавляет символ перехода на новую строку в конец строки взамен убранного с помощью параметра -n, а управляющая последовательность \040 — символ пробела между словами (символ пробела имеет номер 32 в таблице ASCII или 40 в восьмеричном формате).
Для вывода значения переменной в рамках сценария следует использовать символ $ и имя этой переменной:
- $ myname=Alex
- $ echo -e "Hello, $myname"
- Hello, Alex
Очевидно, что для вывода значений переменных в процессе работы с командной оболочкой также следует использовать параметр -e. Таким образом можно выводить значения переменных окружения:
- echo -e "Hello, $USERNAME"
- Hello, alexfc