Вывод в файл bash в linux
Содержание:
- Примеры команды echo в Linux
- 1. Отображение значения переменной
- 2. Не печатайте последний символ новой строки
- 3. Перенаправить вывод в файл
- 3. Использование escape-символов с командой echo
- 4. Отображение текста с одинарными или двойными кавычками с помощью команды echo
- 6. Используйте команду echo для очистки файла в Linux
- Бонусный совет: отображение вывода команды echo в цвете
- Переменные
- Об авторах
- Использование условий и циклов
Примеры команды 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 для каких-то конкретных целей, которые могут быть полезны для других, поделитесь им с нами в разделе комментариев.
Переменные
- Используйте ключевое слово read в скрипте, чтобы запросить данные у пользователя, запускающего скрипт.
- Используйте подстановку команд, чтобы использовать результат команды и назначить его переменной. Например, команда date +%d-%m-%y показывает текущую дату в формате день-месяц-год. Чтобы сделать это в сценарии, вы можете использовать TODAY=$(date +%d-%m-%y). Для подстановки команд вам просто нужно поместить команду, результат которой вы хотите использовать, между скобками.
Листинг 3.read
if… then… else… fi $1test test if …-z $1 — на самом деле тремя (прим. переводчика)-z test$1 if $1then test then testthen echoreadread read TEXT elseelse $1fiechoВы можете попрактиковаться на этом примере при работе с вводом.
- Откройте редактор и создайте файл с именем text. Введите содержимое кода из листинга 3 в этот файл.
- Запишите файл на диск и выполните chmod +x text, чтобы сделать его исполняемым.
- Запустите скрипт, выполнив ./text и без дополнительных аргументов. Вы увидите, что он запрашивает ввод.
- Запустите скрипт, используя «hello» в качестве аргумента (./text hello). Результат отобразит «you have entered the text hello» в STDOUT.
Об авторах
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. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».
Использование условий и циклов
- if… then… else — используется для выполнения кода, если определенное условие выполняется
- for — используется для выполнения команд для диапазона значений
- while — используется для выполнения кода, если выполняется определенное условие
- before — используется для выполнения кода, пока не выполнено определенное условие
- case — используется для оценки ограниченного количества конкретных значений
if then elsetestif if… then… fi
else if elsetestЛистинг 4 if then else
|| и &&
if… then||&&||&&Рассмотрим эти две строки:
$1ping pingif &&||if… then… else&& ||Упражнение if… then… else
- Запустите редактор и создайте скрипт с именем filechk.
- Скопируйте содержимое из листинга 4 в этот скрипт.
- Запустите с ним пару тестов, такие как ./filechk /etc/hosts, ./filechck /usr, ./filechk non-existing-file.