echo — вывод текста
Печать строк и переменных; -n и -e, экранирование, когда лучше printf.
Шпаргалка
5 команд Версия для печати-
echo "x=$var"с раскрытием переменной -
echo 'literal $x'без раскрытия -
echo -n / echo -eбез \n / с escape -
echo "x" >> fileдописать в файл -
printf '%s\n' "$v"переносимый аналог
Обзор
echo печатает аргументы в stdout, через пробел, с переводом строки в конце.
Главный инструмент «показать значение» и «записать строку в файл».
Ключи
3Правило: переменные и спецсимволы — в двойных кавычках; полностью буквально — в одинарных. Подробнее про раскрытие — globbing и env-vars.
| Ключ | Что делает | Пример |
|---|---|---|
-n |
Не добавлять перевод строки в конце. | echo -n "no newline" |
-e |
Включить интерпретацию escape-последовательностей (\n, \t, \\). | echo -e "col1\tcol2" |
-E |
Явно отключить escape-последовательности (поведение по умолчанию в bash). | echo -E "literal\ttext" |
Ничего не найдено. Попробуй запрос короче.
Рецепты
2Когда printf
echo ведёт себя по-разному в разных оболочках (особенно -e/-n). Для скриптов
и точного формата используй printf — он переносим и предсказуем:
Неполадки
3-e напечаталось как текст
Оболочка не bash (в sh/dash поведение иное) или echo внешний. Бери printf.
Звёздочка превратилась в список файлов
echo * без кавычек попадает под globbing. Заключай в кавычки: echo "*".
Перенос строки не там, где надо
echo всегда добавляет \n; чтобы без него — -n; чтобы вставить внутри — -e "...\n..."
или printf.
См. также
- printf — Форматированный вывод в shell — надёжнее echo, форматы и спецсимволы.
- env-vars — env, export, $PATH, ~/.bashrc vs профили; почему «command not found».
- bash-scripting — Переменные, условия, циклы, аргументы и безопасный режим set -euo pipefail.
Есть неточность? Сообщить об ошибке в статье