Встроенный документ (here document) является специальной формой перенаправления ввода/вывода, которая позволяет передать список команд интерактивной программе или команде, например ftp, telnet или ex. Конец встроенного документа выделяется «строкой-ограничителем» , которая задается с помощью специальной последовательности символов . Эта последовательность — есть перенаправление вывода из файла в программу, напоминает конструкцию interactive-program command-file содержит строки:
Сценарий, использующий «встроенный документ» для тех же целей, может выглядеть примерно так:
В качестве строки-ограничителя должна выбираться такая последовательность символов, которая не будет встречаться в теле «встроенного документа» .
Обратите внимание: использование встроенных документов может иногда с успехом применяться и при работе с неинтерактивными командами и утилитами.
Пример 17-1. dummyfile: Создание 2-х строчного файла-заготовки
Этот сценарий, с тем же эффектом, мог бы быть реализован, основываясь не на vi, а на ex. Встроенные документы, содержащие команды для ex, стали настолько обычным делом, что их уже смело можно вынести в отдельную категорию — ex-сценарии.
Пример 17-2. broadcast: Передача сообщения всем, работающим в системе, пользователям
Пример 17-3. Вывод многострочных сообщений с помощью cat
Если строка-ограничитель встроенного документа начинается с символа — ( «Sunsite»
Встроенные документы могут передаваться на вход функции, находящейся в том же сценарии.
Пример 17-8. Встроенные документы и функции
Встроенный документ можно передать «пустой команде» : . Такая конструкция, фактически, создает «анонимный» встроенный документ.
Пример 17-9. «Анонимный» Встроенный Документ
Подобную технику можно использовать для создания «блочных комментариев» .
Пример 17-10. Блочный комментарий
Еще одно остроумное применение встроенных документов — встроенная справка к сценарию.
Пример 17-11. Встроенная справка к сценарию
Для встроенных документов, во время исполнения, создаются временные файлы, но эти файлы удаляются после открытия и недоступны для других процессов.
Некоторые утилиты не могут работать внутри встроенных документов .
Если какая либо задача не может быть решена с помощью «встроенного документа» , то вам следует попробовать язык сценариев expect, который приспособлен для передачи параметров на вход интерактивных программ.
Источник
Команда 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
Как известно, большинство действий в операционной системе Linux осуществляются через консоль. Пользователи задействуют специальные команды, отвечающие за выполнение определенных процессов, а заранее указанные опции позволяют собственными руками управлять дополнительными возможностями тех самых утилит. Одной из таких команд является echo, и сегодня мы хотим более детально рассказать об этой утилите, приведя несколько примеров ее использования.
Используем команду echo в Linux
Рассматриваемая сегодня команда echo имеет примитивный вид и узкопрофильное предназначение — выводить текст на экран. Однако это не мешает ей часто использоваться в различных скриптах и для других целей. Далее мы предлагаем вкратце ознакомиться с синтаксисом данной утилиты и разобрать самые популярные и простые примеры ее ввода в стандартной консоли.
Синтаксис echo
Практически каждая команда помимо основной своей функции может выполнять и другие действия с учетом указанных аргументов. echo не стала исключением в этом плане, однако из-за простоты самой команды расширенных опций существует не так уж и много. Давайте подробнее рассмотрим каждую из них, но сначала обратите внимание на стандартный вид строки: echo + опции + строка .
-n — не будет выводить перенос строки;
-e — отвечает за включение Escape-последовательностей;
Отметим также, что Escape-последовательности — универсальные опции, представленные в виде символов. Каждая из них имеет определенное значение, и если вы включите интерпретацию при использовании команды echo, то можете задействовать такие аргументы:
/c — отвечает за удаление перевода строки;
/t — выводит горизонтальную табуляцию;
/v — создает вертикальную табуляцию;
/b — удаляет предыдущий символ в строке;
/n — включает перенос строки на новую;
/r — возвращает каретку в начало строки.
Еще раз уточним, что приведенные выше опции доступны к вводу только в тех ситуациях, когда вы изначально прописали аргумент -e в команде. Если есть необходимость, каждый этот символ можно проставить после любого из слов строки ввода, что мы покажем в следующих инструкциях.
Вывод простых строк
Как уже было сказано ранее, основное предназначение команды echo — вывод на экран строк. Именно об этом мы и хотим поговорить далее, рассмотрев несколько простых действий, которые помогут понять, как именно работают все основные опции утилиты.
Запустите консоль удобным для вас образом, например через меню приложений или путем нажатия на горячую клавишу Ctrl + Alt + T. Здесь введите echo + любое слово или словосочетание, чтобы проверить стандартное действие команды. Активируется она нажатием на клавишу Enter.
Как видите, в новой строке отобразились только что введенные слова в точно таком же формате.
Если перед каждым словом вы добавите опцию \b , предыдущий символ будет стерт, а это значит, что результат выведется без пробелов, при условии, что мы имеем изначальный вид echo -e «Lumpics \bSite \bLinux» .
Мы проставили указанную опцию во всех словах, поэтому результат получился соответствующий.
Мы указали \n в двух словах, идущих после первого, следовательно, каждое из них будет отображаться в новой строке.
Перейдем к табуляции, использующейся для выравнивания текста. Вам достаточно будет прописать в необходимых местах \t , чтобы добиться нужного результата.
Как видно, к первому слову табуляция была применена дважды. Учитывайте это при выводе строк.
Дополнительно ничего не мешает указывать несколько опций последовательно, соблюдая правила ввода.
Так, например, на приведенном ниже скриншоте вы видите результат вывода с переносом и табуляцией одновременно.
В качестве последнего примера возьмем /v . Этот аргумент создает вертикальную табуляцию.
В результате получается каждое слово с новой строки и в виде ступенек.
Теперь вы знаете, что команда echo способна выводить заданные строки в любом виде, который можно реализовать путем указания соответствующих опций. Давайте перейдем к другим параметрам, чтобы вы понимали, какие из них стоит комбинировать в правильном формате.
Вывод значений переменной
Практически в каждом скрипте используются определенные переменные, в которые заранее устанавливается значение. Если речь идет об утилите echo, то она способна выводить те самые значения. Мы рассмотрим этот пример в одной терминальной сессии без предварительного создания самого скрипта. Это обозначает, что при перезапуске консоли значения будут стерты.
Для начала создадим пробную переменную введя export I=Lumpics , где I — имя переменной, а Lumpics — ее значение.
Используйте echo $I , чтобы вывести в следующей строке значение обозначенной переменной.
Как видите, все отобразилось корректно.
Создадим еще одну переменную через export L=Linux .
Введем пробную команду echo $I Site $L .
Теперь вы знаете, что echo справляется с выводом двух и более переменных в формате одной строки.
В большинстве случаев подобный вывод переменных используется только при написании скриптов, однако подобная функция может пригодится, если планируется производить ряд одинаковых, зависимых от одного значения, действий в пределах одной терминальной сессии.
Присвоение цветов строке
Если вы активно используете консоль, то знаете, что каждое слово здесь может принять любой доступный цвет, а не только белый или черный (в зависимости от темы «Терминала»). echo тоже позволяет раскрашивать строки, а отвечают за это такие аргументы:
\033[30m — чёрный;
\033[31m — красный;
\033[32m — зелёный;
\033[33m — желтый;
\033[34m — синий;
\033[35m — фиолетовый;
\033[36m — голубой;
\033[37m — серый.
Имеется и ряд других аргументов, позволяющих изменить цвет фона надписи. Выглядит список похожим образом, но имеются различия в цифрах:
\033[40m — чёрный;
\033[41m — красный;
\033[42m — зелёный;
\033[43m — желтый;
\033[44m — синий;
\033[45m — фиолетовый;
\033[46m — голубой;
\033[47m — серый;
\033[0m — сбрасывает все значения до состояния по умолчанию.
Как вы уже поняли, эти аргументы придется применять к каждой строке, если в этом есть необходимость. Выглядит подобная структура так: echo -e «\033[33mLumpics \033[46mSite \033[41mLinux» .
Приведенный выше пример окрасил фон строки «Lumpics» в оранжевый цвет, а к «Site» и «Linux» дополнительно были активированы фоны разных цветов. Вы это видите на приведенном ниже скриншоте действия введенной команды.
Специальные символы Bash
Команда echo функционирует только в среде Bash, соответственно, она должна поддерживать стандартные опции этого окружения. В большинстве случаев они отвечают за сортировку файлов и вывод объектов текущего расположения.
Введите в «Терминале» echo * , чтобы показать содержимое текущей папки.
Следующей строкой появится перечень абсолютно всех входящих директорий и элементов. Это будет стандартная строка без оформления. Однако теперь вы уже знаете, что ее можно видоизменить на основании примеров выше.
Укажите echo *.txt , если хотите отобразить только элементы обозначенного формата. Замените .txt на другой необходимый вариант.
В конце отметим, что echo выступает и для редактирования конфигурационных файлов, что осуществляется так: echo 1 > /proc/sys/net/ipv4/ip_forward . 1 — строка для внесения, а /proc/sys/net/ipv4/ip_forward — путь к нужному объекту.
В рамках сегодняшнего материала мы разобрались с использованием echo в операционной системе Linux. Если вас заинтересовала тема взаимодействия с популярными командами, дополнительно рекомендуем изучить статью по этой теме на нашем сайте, перейдя по указанным ниже ссылкам.
Помимо этой статьи, на сайте еще 12315 инструкций. Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.