Linux echo конец строки

Оформление вывода в shell-сценариях

В этой заметке будут обсуждаться:

  • сюрпризы, которые может нам преподнести команда echo (читается как эхо);
  • способы «расцвечивания» результатов работы наших сценариев;
  • возможности управления перемещением курсора, очисткой экрана, раздвижкой и сдвижкой строк;
  • использование и назначение программы tput и баз данных termcap и terminfo.

Коварное эхо

Однако, в 70-е годы прошлого века не все было так одназначно. Существовал один филосовский вопрос. Суть его была такова: что должна делать команда echo, если ей не передали аргументов, в частности, следует ли ей выдавать пустую строку или вообще ничего не предпринимать? По этому поводу велись большие дебаты. Такие, что вдохновили Дуга МакИлроя /Doug McIlroy/ сочинить притчу, которая приведена ниже.

UNIX и эхо.

Жила-была в стране Нью-Джерси, прекрасная девушка UNIX, к которой приезжали издалека, чтобы полюбоваться ею. Ослепленные чистотой UNIX, все искали ее руки и сердца: одни ≈ за изящество, другие ≈ за изысканную вежливость, третьи ≈ за проворность при выполнении самых изнурительных заданий. Была она от рождения столь великодушна и услужлива, что все женихи остались довольны ею, а ее многочисленное потомство распространилось во все концы земли.

Сама природа покровительствовала UNIX и вторила ей более охотно, чем кому-либо из смертных. Простые люди поражались ее эхом, таким оно было точным и кристально чистым. Они не могли поверить, что ей отвечают те же леса и скалы, которые так искажают их собственные голоса. Когда один нетерпеливый пастушок попросил UNIX: «Пусть эхо ответит ничего», и она послушно открыла рот, эхо промолчало. «Зачем ты открываешь рот? ≈ спросил пастушок. ≈ Отныне никогда не открывай его, если эхо должно ответить ничего!». ≈ и UNIX подчинилась.

«Но я хочу совершенного исполнения, даже если эхо отвечает ничего, ≈ потребовал другой, обидчивый, юноша, ≈ а никакого совершенного эха не получится при закрытом рте». Не желая обидеть никого из них, UNIX согласилась говорить разные «ничего» для нетерпеливого и обидчивого юношей. Она называла «ничего» для обидчивого как ‘\n’. Однако теперь, когда она говорила ‘\n’, на самом деле она не произносила ничего, поэтому ей приходилось открывать рот дважды: один раз, чтобы сказать ‘\n’, и второй раз, чтобы не сказать ничего. Это не понравилось обидчивому юноше, который тотчас сказал: «Для меня ‘\n’ звучит, как настоящее «ничего», но когда ты открываешь рот второй раз, то все портишь. Возьми второе «ничего» назад». Услужливая UNIX согласилась отказаться от некоторых эхо и обозначила это как ‘\с’. С тех пор обидчивый юноша мог услышать совершенное эхо «ничего», если он задавал ‘\n’ и ‘\с’ вместе, но говорят, что он так и не услышал его, поскольку умер от излишеств в обозначениях. [1]

Хотя все настоящие реализации этой команды выдают пустую строку, это еще не значит, что проблемы закончились. Давайте их рассмотрим. Рекомендую все, о чем я буду рассказывать, проверить на практике, сидя за консолью. Так будет легче разобраться.

Читайте также:  80096004 ошибка обновления windows

Уже в 7-ой редакции UNIX echo распознавала флаг -n, который подавлял вывод завершающего символа перевода строки:
$ echo -n Seven Edition
Seven Edition$

В System V, где команда echo умеет интерпретировать упраляющие последовательности вида \Х, для подавления вывода завершающего символа перевода строки используют обозначение . Поэтому вызвав echo с аргументом -n вы можете получить не совсем то, что ожидали:
$ echo -n System V
-n System V
$

В Linux же, echo не желает обрабатывать последовательности вида \Х:
$ echo Linux\\с
Linux \с
$
до тех пор, пока вы не зададите ей флаг -e:
$ echo -e Linux\\с
Linux$

Можно воспользоваться и флагом -n, echo из Linux его понимает.

Добавляет путаницы и то, что почти всегда shell имеет встроенную команду echo, поведение которой может отличаться от внешней /bin/echo. Кроме того, в системе может оказаться не одна echo, а парочка. В таком случае, второе echo обычно находится где-нибудь в районе /usr/ucb/. Из-за таких различий в реализации echo возникают определенные трудности при переносе сценариев из системы в систему. Есть ли способ их избежать? Конечно, но это уже другая история.

Да будет цвет!

Перед тем как перейти к детальному рассмотрению esc-последовательностей, давайте вначале научимся вводить символ esc с клавиатуры (если вы умеете это делать, то можете переходить к выполению примеров из следующего абзаца). Чтобы ввести с клавиатуры код любой «непечатной», т. е. управляющей клавиши (функциональной, стрелки и т. п.), необходимо нажать Ctrl+V, а затем интересующую вас «кнопку». Этот прием будет работать не только в командной строке, но и в текстовом редакторе vi.

Проверим на практике. Выполним команду echo «Ctrl+V,Esc[30;40m»;clear (на экране символ esc будет показан как ^[):
$ echo «^[[30;40m»;clear

Если вы все сделали правильно, то приобретайте прибор ночного видения :)! Пожалуй я не ошибусь, предположив, что у вас возникли вопросы:
≈ А что это за числа? К чему они ведут? «А вдруг они не курят, а вдруг они не пьют?» [2]
≈ Числа 30 и 40 это аргументы команды esc[ n m. При необходимости указать несколько аргументов, их перечисляют через точку с запятой: esc[ n1 ; n2 ;. m. В зависимости от значения n результаты будут следующими: Теперича, имея в своем распоряжении такую табличку, можете приступать к получению «синих экранов», «красных квадратов» и прочей творческой работе. В которой желаю вам всяческих успехов (тем кто предпочитает другие слова ≈ удачи).

Что еще могут esc-последовательности?

Проведем испытания. Начнем с подготовки рабочего пространства. Выполните команду clear (или просто нажмите Ctrl+L). Затем ≈ более хитрую (напомню, что символы ^[ появляются в результате нажатия клавиш Ctrl+L,Esc):

И небольшое замечание относительно ДОСа. Помните такую ОС? Так вот, если к ней прикрутить стандартный драйвер ANSI.SYS, то все вышеперечисленные esc-последовательности будут работать и там. 1. Брайан Керниган, Роб Пайк
UNIX ≈ универсальная среда программирования
М.: Финансы и статистика, 1992

2. Слова из песни, которые как известно не выбросишь.

Источник

Команда Echo в Linux с примерами

Команда echo — одна из самых основных и часто используемых команд в Linux. Аргументы, переданные в echo выводятся на стандартный вывод.

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

эхо-команда

echo — это оболочка, встроенная в Bash и большинство других популярных оболочек, таких как Zsh и Ksh. Его поведение немного отличается от оболочки к оболочке.

Существует также отдельная утилита /usr/bin/echo , но обычно встроенная версия оболочки имеет приоритет. Мы рассмотрим встроенную в Bash версию echo .

Синтаксис команды echo следующий:

  • Когда используется опция -n , завершающий символ новой строки подавляется.
  • Если задана опция -e будут интерпретироваться следующие символы, экранированные обратной косой чертой:
    • \ — отображает обратную косую черту.
    • a — Предупреждение (BEL)
    • b — отображает символ возврата.
    • c — подавить любой дальнейший вывод
    • e — отображает escape-символ.
    • f — отображает символ перевода страницы.
    • n — отображает новую строку.
    • r — отображает возврат каретки.
    • t — отображает горизонтальную вкладку.
    • v — отображает вертикальную вкладку.
  • Параметр -E отключает интерпретацию escape-символов. Это значение по умолчанию.

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

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

echo Примеры

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

Вывести строку текста на стандартный вывод.

Отобразите строку текста, содержащую двойные кавычки.

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

Отобразите строку текста, содержащую одинарную кавычку.

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

Вывести сообщение, содержащее специальные символы.

Используйте параметр -e чтобы включить интерпретацию escape-символов.

Символы соответствия шаблону.

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

Перенаправить в файл

Вместо отображения вывода на экране вы можете перенаправить его в файл с помощью операторов > , >> .

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

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

Отображение переменных

echo также может отображать переменные. В следующем примере мы напечатаем имя текущего вошедшего в систему пользователя:

$USER — это переменная оболочки, в которой хранится ваше имя пользователя.

Отображение вывода команды

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

Отображение в цвете

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

Выводы

К настоящему времени вы должны хорошо понимать, как работает команда echo .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Команда Echo в Linux с примерами

Echo Command in Linux with Examples

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

Команда echo является одной из самых основных и часто используемых команд в Linux. Переданные аргументы echo выводятся на стандартный вывод.

echo это оболочка, встроенная в Bash и большинство других популярных оболочек, таких как Zsh и Ksh. Его поведение немного отличается от оболочки к оболочке.

Существует также отдельная /usr/bin/echo утилита, но обычно встроенная версия оболочки имеет преимущество. Мы рассмотрим встроенную версию Bash echo .

Синтаксис echo команды следующий:

  • При использовании этой -n опции завершающий символ новой строки подавляется.
  • Если -e опция указана, будут интерпретированы следующие символы с обратной косой чертой:
    • \\ — Отображает символ обратной косой черты.
    • \a — Оповещение (BEL)
    • \b — Отображает символ возврата на одну позицию.
    • \c — Подавить дальнейший вывод
    • \e — Отображает escape-символ.
    • \f — Отображает символ подачи формы.
    • \n — Отображает новую строку.
    • \r — Отображает возврат каретки.
    • \t — Отображает горизонтальную вкладку.
    • \v — Отображает вертикальную вкладку.
  • -E Опция отключает интерпретацию символов побега. Это по умолчанию.

Есть несколько моментов, которые следует учитывать при использовании echo команды.

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

Примеры

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

Вывести строку текста на стандартный вывод.

Отобразить строку текста, содержащую двойную кавычку.

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

Показать строку текста, содержащую одну кавычку.

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

Покажите сообщение, содержащее специальные символы.

Используйте -e опцию, чтобы включить интерпретацию escape-символов.

Шаблон соответствия символов.

echo Команда может быть использована с соответствующей моделью символами, такие как подстановочные знаки. Например, приведенная ниже команда вернет имена всех .php файлов в текущем каталоге.

Перенаправить в файл

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

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

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

Отображение переменных

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

$USER является переменной оболочкой , которая содержит имя пользователя.

Отображение вывода команды

Используйте $(command) выражение, чтобы включить вывод команды в echo аргумент. Следующая команда отобразит текущую дату :

Отображение в цвете

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

Вывод

К настоящему времени вы должны хорошо понимать, как echo работает команда.

Источник

Читайте также:  При windows 10 компьютер запускается со второго раза
Оцените статью