Как использовать команду Echo в Linux

Окно терминала Linux на рабочем столе в стиле Ubuntu.

Фатмавати Ахмад Дзэнури / Shutterstock



echo Команда идеально подходит для записи форматированного текста в окно терминала. И это не обязательно должен быть статический текст. Он может включать переменные оболочки, имена файлов и каталоги. Вы также можете перенаправить эхо для создания текстовых файлов и файлов журналов. Следуйте этому простому руководству, чтобы узнать, как это сделать.

Эхо повторяет то, что вы ему говорите, чтобы повторить

Зевс любил покидать гору Олимп, чтобы общаться с красивыми нимфами. Во время одной поездки он сказал горной нимфе по имени Эхо подстеречь свою жену , Гера, если она последовала за ним. Гера действительно пришла искать Зевса, и Эхо делала все, что могла, чтобы Гера продолжала разговаривать. В конце концов, Гера вышла из себя и прокляла бедную Эхо, чтобы она повторяла только последние слова, сказанные кем-то другим. Остается только догадываться, что Гера сделала с Зевсом, когда догнала его.





И это, по сути, удел echo в жизни. Он повторяет то, что было сказано повторить . Это простая, но жизненно важная функция. Без echo , например, мы не сможем получить видимый вывод из сценариев оболочки.

Хотя и не перегруженный множеством наворотов, есть хороший шанс, что echo обладает некоторыми способностями, о которых вы не знали или о которых забыли.



выбросил? выбросил!

Большинство систем Linux предоставляют две версии echo. В Оболочка Bash имеет свой echo встроена в него, и есть бинарная исполняемая версия echo также.

Реклама

Мы можем увидеть две разные версии, используя следующие команды:

type echo



type команда сообщает нам передаем ли мы ему команду как его аргумент - это встроенная оболочка, двоичный исполняемый файл, псевдоним или функция. Он сообщает нам, что whereis это встроенная оболочка.

Как только он нашел ответ, whereis перестает искать дальнейшие совпадения. Таким образом, он не сообщает нам, есть ли в системе другие команды с таким же именем. Но он говорит нам, какой из них находит первым. И это тот, который будет использоваться по умолчанию, когда мы введем эту команду.

echo команда ищет двоичный исполняемый файл, исходный код и страницу руководства для команды, которую мы передаем ей в качестве командной строки параметр . Он не ищет встроенные команды оболочки, потому что у них нет отдельного двоичного исполняемого файла. Они являются неотъемлемой частью исполняемого файла Bash.

/bin команда сообщает, что echo это двоичный исполняемый файл, расположенный в --version каталог.

Чтобы использовать эту версию echo вам нужно будет явно вызвать его, указав путь к исполняемому файлу в командной строке:

echo

Реклама

Встроенная оболочка не знает, что за > аргумент командной строки, он просто повторяет его в окне терминала:

echo

Все показанные здесь примеры используют версию по умолчанию echo в оболочке Bash.

Запись текста в терминал

Чтобы записать простую строку текста в окно терминала, введите echo и строку, которую вы хотите отобразить:

Текст повторяется за нас. Но по мере того, как вы поэкспериментируете, вы скоро обнаружите, что все может немного усложниться. Взгляните на этот пример:

echo

В окне терминала отображается my_name подписывается и сидит там, ждет. Ctrl + C вернет вас в командную строку. Что там произошло?

Одиночная кавычка или апостроф в слове 'Я запуталась' echo. Он интерпретировал эту одинарную кавычку как начало цитируемого раздела текста. Поскольку он не обнаружил закрывающую одинарную кавычку, $ ждал дополнительных отзывов. Он ожидал, что дальнейшие данные будут включать отсутствующую одинарную кавычку, которую он ждал.

Реклама

Чтобы включить одинарную кавычку в строку, самое простое решение - заключить всю строку в двойные кавычки:

echo

Общий хороший совет - заключить текст в двойные кавычки. В скриптах он четко разграничивает параметры, которые вы передаете в echo. Это значительно упрощает чтение и отладку скриптов.

Что, если вы хотите включить в текстовую строку символ двойной кавычки? Это просто, просто поставьте обратную косую черту echo перед двойной кавычкой (без пробелов между ними).

$

Это заключает для нас слово компьютерщик в двойные кавычки. Мы увидим больше таких с обратной косой чертой персонажей в ближайшее время.

Использование переменных с эхом

До сих пор мы писали предопределенный текст в окно терминала. Мы можем использовать переменные с echo для получения более динамичного вывода со значениями, вставленными в него оболочкой. Мы можем определить простую переменную с помощью этой команды:

echoРеклама

Переменная с именем echo был создан. Ему было присвоено значение текста Дэйв. Мы можем использовать имя переменной в строках, которые мы передаем в echo , и значение переменной будет записано в окно терминала. Вы должны поставить знак доллара echo перед именем переменной, чтобы $ знаю, что это переменная.

Есть нюанс. Если вы заключили строку в одинарные кавычки -e буду ко всему относиться буквально. Чтобы переменная ценность отображается, а не название переменной используйте двойные кавычки.

Уместно повторить:

  • С использованием не замужем кавычки приводят к тому, что текст записывается в окно терминала в виде буквальный мода.
  • С использованием двойной кавычки приводят к интерпретации переменной - также называемой раскрытием переменной - и ценность пишется в окно терминала.

СВЯЗАННЫЙ: Как работать с переменными в Bash

Использование команд с эхом

Мы можем использовать команду с и включить его вывод в строку, которая записывается в окно терминала. Мы должны использовать знак доллара v как если бы команда была переменной, и заключите всю команду в круглые скобки.

Мы собираемся использовать команда даты . Один совет - использовать команду отдельно, прежде чем начинать использовать ее с . Таким образом, если что-то не так с синтаксисом вашей команды, вы определите это и исправите, прежде чем включать в v команда. Тогда, если  команда не выполняет то, что вы ожидаете, вы знаете, что проблема должна быть в синтаксис, потому что вы уже доказали синтаксис команды.

Итак, попробуйте это в окне терминала:

echo

И, убедившись, что получаем то, что ожидаем от команды date, интегрируем ее в a команда:

-n

Обратите внимание, что команда заключена в круглые скобки и знак доллара echo стоит непосредственно перед первой круглой скобкой.

Форматирование текста с эхом

echo (включить экранирование обратной косой черты) позволяет нам использовать некоторые экранированные символы обратной косой черты для изменения макета текста. Мы можем использовать следующие символы с обратной косой чертой:

    к: Alert (исторически известный как BEL). Это генерирует звуковой сигнал предупреждения по умолчанию. b: Записывает символ возврата. c: Отказ от дальнейшего вывода. И: Записывает escape-символ. f: Записывает символ перевода страницы. п: Пишет новую строку. р: Записывает возврат каретки. т: Пишет горизонтальную табуляцию. v: Пишет вертикальную табуляцию. \: Записывает символ обратной косой черты.
Реклама

Давайте воспользуемся некоторыми из них и посмотрим, что они делают.

ls

Текст разделен на новую строку, где мы использовали echo символы и вкладка вставляется там, где мы использовали ls символы.

echo

Как и ls символы новой строки, вертикальная табуляция echo перемещает текст в строку ниже. Но, в отличие от > символы новой строки, echo вертикальная табуляция не начинает новую строку с нулевого столбца. Он использует текущий столбец.

>> символы backspace перемещают курсор на один символ назад. Если в терминал нужно записать больше текста, этот текст перезапишет предыдущий символ.

echo

Число 3 заменяется числом 4.

cat символ возврата каретки вызывает date для возврата к началу текущей строки и для записи любого дальнейшего текста из нулевого столбца.

date

123 символа заменяются 456 символами.

cat Предупреждающий символ издаст звуковой сигнал. Он использует звуковой сигнал по умолчанию для вашей текущей темы.

type echo

Реклама

whereis echo
Параметр (без новой строки) не является последовательностью с обратной косой чертой, но он влияет на внешний вид макета текста, поэтому мы обсудим его здесь. Это предотвращает
/bin/echo --version
от добавления новой строки в конец текста. Командная строка появляется сразу после текста, который выводится в окно терминала.

echo --version

Использование echo с файлами и каталогами

Вы можете использовать

echo My name is Dave.
как своего рода версия
echo My name is Dave and I'm a geek.
для бедняков. Когда вы используете
echo 'My name is Dave and I'm a geek.'
нравится. Если вам нужна верность или тонкий контроль, лучше использовать
echo 'My name is Dave and I'm a 'geek.''
и его легион вариантов .

Эта команда выводит список всех файлов и каталогов в текущем каталоге:

my_name='Dave'

Эта команда выводит список всех файлов и каталогов в текущем каталоге, имя которых начинается с D:

echo 'My name is $my_name'

Эта команда выводит список всех файлов .desktop в текущем каталоге:

echo 'My name is $my_name'

Ага. Это не играет на сильных сторонах

date +%D
. Используйте
echo 'Today's date is: $(date +%D)'
.

Запись в файлы с помощью эха

Мы можем перенаправить вывод из

echo -e 'This is a long line of text
split across three lines
with	tabs	on	the	third	line'
и либо создавать текстовые файлы, либо записывать в существующие текстовые файлы.

Реклама

Если мы используем

echo -e 'Herevarevverticalvtabs'
оператор перенаправления, файл создается, если он не существует. Если файл существует, вывод из
echo -e '1234'
добавляется в начало файла, перезаписывая любое предыдущее содержимое.

Если мы используем

echo -e '123
456'
оператор перенаправления, файл создается, если он не существует. Вывод из
echo -e 'Make a bleepa'
добавляется в конец файла и не перезаписывает существующее содержимое файла.

echo -n 'no final newline'
echo *
echo D*

По первой команде создается новый файл, в который вставляется текст. Вторая команда добавляет строку текста в конец файла.

echo *.desktop
Команда отображает содержимое файла в окне терминала.

И, конечно же, мы можем включать переменные, чтобы добавить полезную информацию в наш файл. Если файл является файлом журнала, мы можем захотеть добавить к нему временную метку. Мы можем сделать это с помощью следующей команды.

Обратите внимание на одинарные кавычки вокруг параметров для

echo 'Creating a new file.' > sample.txt
команда. Они предотвращают интерпретацию пробела между параметрами как конец списка параметров. Они обеспечивают передачу параметров в
echo 'Adding to the file.' >> sample.txt
правильно.

cat sample.txt
echo 'Logfile started: $(date +'%D %T')' > logfile.txt

Наш лог-файл создан для нас и

cat logfile.txt
показывает нам, что к нему были добавлены как отметка даты, так и отметка времени.

СВЯЗАННЫЙ: Что такое stdin, stdout и stderr в Linux?

Репертуар эха

Простая команда, но незаменимая. Если бы его не было, нам пришлось бы его изобрести.

В конце концов, махинации Зевса пошли на пользу.

Команды Linux
Файлы деготь · pv · Кот · такс · chmod · рукоятка · разница · sed · С участием · человек · толкать · popd · fsck · тестовый диск · seq · fd · пандок · компакт диск · $ ПУТЬ · awk · присоединиться · jq · складывать · уникальный · journalctl · хвостик · государство · ls · fstab · выбросил · меньше · chgrp · Chown · rev · Посмотрите · струны · тип · переименовать · застегивать · распаковать · устанавливать · размонтировать · установить · fdisk · mkfs · rm · rmdir · rsync · df · gpg · мы · нано · mkdir · от · пер · пластырь · конвертировать · rclone · крошить · SRM
Процессы псевдоним · экран · верхняя · Ницца · Ренис · прогресс · Strace · система · tmux · чш · история · в · партия · бесплатно · который · dmesg · usermod · пс · chroot · xargs · tty · мизинец · lsof · vmstat · тайм-аут · стена · да · убийство · спать · судо · его · время · groupadd · usermod · группы · lshw · неисправность · перезагружать · останавливаться · выключение · пароль · lscpu · crontab · Дата · bg · фг
Сети netstat · пинг · трассировка · ip · SS · кто · fail2ban · бмон · ты · Палец · nmap · ftp · завиток · wget · ВОЗ · кто я · В · iptables · ssh-keygen · ufw

СВЯЗАННЫЙ: Лучшие ноутбуки с Linux для разработчиков и энтузиастов

ПРОЧИТАЙТЕ СЛЕДУЮЩИЙ Фотография профиля Дэйва Маккея Дэйв Маккей
Дэйв Маккей впервые использовал компьютеры, когда в моде была перфолента, и с тех пор он занимается программированием. Проработав более 30 лет в ИТ-индустрии, он теперь работает журналистом в области информационных технологий. За свою карьеру он работал программистом-фрилансером, менеджером международной группы разработчиков программного обеспечения, менеджером проекта ИТ-услуг, а в последнее время - специалистом по защите данных. Его статьи были опубликованы на сайтах howtogeek.com, cloudsavvyit.com, itenterpriser.com и opensource.com. Дэйв - евангелист Linux и сторонник открытого исходного кода.
Прочитать полную биографию

Интересные статьи