Синтаксис и опции команды echo в bash

Примеры команды echo в Linux

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


Команда echo имеет простой синтаксис с несколькими опциями:

Давайте посмотрим несколько примеров команды echo:

1. Отображение значения переменной

Допустим, вы объявили переменную var = 100. Вы можете отобразить значение этой переменной с помощью команды echo:

Его вывод будет отображаться так:

Значение переменной var равно 100

2. Не печатайте последний символ новой строки

По умолчанию выходные данные команды echo добавляют новую строку к выходным данным, чтобы выходные данные отображались в одной целой строке.

destroyer@andreyex:~$ echo Привет Мир Привет Мир

Вы можете подавить этот символ новой строки, используя опцию -n:

destroyer@andreyex:~$ echo Привет Мир Привет Мирdestroyer@andreyex:~$

3. Перенаправить вывод в файл

Вы можете использовать команду echo, чтобы создать новый файл в Linux или добавить новый текст в существующий файл, перенаправив вывод в файл:

3. Использование escape-символов с командой echo


Опция -e с echo позволяет вам интерпретировать escape-символы. С помощью escape-символов вы можете отображать текст на экране другим способом по вашему выбору.

Следующие escape-символы доступны с escape:

  • \a – оповещение (воспроизводит звуковой сигнал)
  • \b – Backspace
  • \c – не печатать последний перевод строки (так же, как опция -n)
  • \f – из корма
  • \n – перевод строки
  • \r – возврат каретки
  • \t – горизонтальная вкладка
  • \v – вертикальная вкладка
  • \\ – обратная косая черта
  • \’- одинарная кавычка
  • \”- двойная цитата

В то время как опция -e просит команду echo интерпретировать escape-символы, опция -E делает обратное и игнорирует escape-символы.

Теперь давайте посмотрим, как использовать некоторые из этих escape-символов с командой echo.

Можете ли вы угадать, какой будет вывод команды выше? Вот:

Око за оком оставляет весь мир слепым – Ганди

Давайте посмотрим некоторые другие примеры escape-символов. Символ возврата каретки печатает только текст после этого символа.

destroyer@andreyex:~$ echo -e “Привет\rМир” Мир

Если вы используете символ возврата, он удалит один символ перед ним:

destroyer@andreyex:~$ echo -e “Привет \bМир” ПриветМир

Вы можете играть с другими escape-символами таким же образом.

4. Отображение текста с одинарными или двойными кавычками с помощью команды echo

Работа с одинарными и двойными кавычками часто является головной болью.


Если у вас есть одинарная кавычка в тексте, который вы хотите отобразить, вы должны заключить весь ввод в двойные кавычки:

destroyer@andreyex:~$ echo “Это мой мир” Это мой мир

Если вы хотите отобразить двойные кавычки, вы должны «избежать» этого:

destroyer@andreyex:~$ echo “Это \”мой\” мир” Это “мой” мир

Вы, вероятно, используете команду ls для отображения файлов в каталоге . Вы также можете использовать команду echo для этой цели.

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

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

6. Используйте команду echo для очистки файла в Linux

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

Бонусный совет: отображение вывода команды echo в цвете

Вы, вероятно, натолкнулись на какой-нибудь bash-скрипт, отображающий вывод текста другим цветом. Задумывались ли вы, как это делается? Позвольте нам показать вам это.

Вы можете использовать escape-последовательность ANSI и изменить внешний вид вывода, например, цвет фона, подчеркивание, полужирный и т. д.

Чтобы изменить цвет выходного текста, вы можете использовать эти:

echo -e “\033[30mЭто Черный” echo -e “\033[31mЭто Красный” echo -e “\033[32mЭто Зеленый” echo -e “\033[33mЭто Желтый” echo -e “\033[34mЭто Синий” echo -e “\033[35mЭто Пурпурный” echo -e “\033[36mЭто Голубой” echo -e “\033[37mЭто Белый”


\033[представляет ESC[ в приведенных выше командах.

Ну вот и все. Мы думаем, что вы увидели множество примеров команды echo в Linux. Если вы используете echo для каких-то конкретных целей, которые могут быть полезны для других, поделитесь им с нами в разделе комментариев.

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Примеры Echo

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

  • Вывести строку текста на стандартный вывод.
    echo Hello, World!
    Hello, World!
  • Показать строку текста, содержащую двойную кавычку.Чтобы напечатать двойные кавычки, заключите их в одинарные кавычки или экранируйте их символом обратной косой черты.
    echo 'Hello "andreyex"'
    echo "Hello \"andreyex\""
    Hello, World!
  • Показать строку текста, содержащую одну кавычку.Чтобы напечатать одинарную кавычку, заключите ее в двойные кавычки или используйте квотирование ANSI-C .
    echo "Я пользователь Linux."
    echo $'Я\ пользователь Linux.'
    Hello, World!
  • Показать сообщение, содержащее специальные символы.Используйте опцию -e, чтобы включить интерпретацию символов escape.
    echo -e "Ты ничего не знаешь, Master.\n\t- AndreyEx"
    Ты ничего не знаешь, Master.
        - AndreyEx
  • Шаблон соответствия символов.Команда echo может использоваться с символами сопоставления с образцом, такими как символы подстановки. Например, приведенная ниже команда вернет имена всех файлов .php в текущем каталоге.
    echo В php файлы являются: *.php
    В php файлы являются: index.php contact.php functions.php
  • Перенаправить в файлВместо отображения вывода на экране вы можете перенаправить его в файл , используя оператор >, >>.
    echo -e 'Единственная истинная мудрость в том, чтобы знать, что ты ничего не знаешь.\nСократ' >> /tmp/file.txt

    Если файл file.txt не существует, команда создаст его. При использовании > файл будет перезаписан, в то время >> будет добавлен в файл.

    Используйте команду cat для просмотра содержимого файла:

    cat /tmp/file.txt
    Единственная истинная мудрость в том, чтобы знать, что ты ничего не знаешь.
    Сократ
  • Отображение переменныхecho также может отображать переменные. В следующем примере мы распечатаем имя вошедшего в систему пользователя.
    echo $USER
    andreyex

    $USER является переменной оболочки.

  • Отображение вывода командыИспользуйте выражение $(command), чтобы включить вывод команды в аргумент echo. Следующая команда отобразит текущую дату:
    echo "The date is: $(date +%D)"
    The date is: 04/19/19
  • Отображение в цветеИспользуйте escape-последовательности ANSI, чтобы изменить цвета переднего плана и фона или установить свойства текста, такие как подчеркивание и полужирный.
    echo -e "\033[1;37mWHITE"
    echo -e "\033[0;30mBLACK"
    echo -e "\033[0;34mBLUE"
    echo -e "\033[0;32mGREEN"
    echo -e "\033[0;36mCYAN"
    echo -e "\033[0;31mRED"
    echo -e "\033[0;35mPURPLE"
    echo -e "\033[0;33mYELLOW"
    echo -e "\033[1;30mGRAY"

С этим читают