Автор Тема: Команда echo в Linux  (Прочитано 11505 раз)

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4814
  • Да будет свет!
Команда echo в Linux
« : 06 Июня 2021, 23:50:38 »
Команда echo является одной из самых основных и часто используемых команд в Linux. Переданные аргументы echo выводятся на стандартный вывод.
echo - это оболочка, встроенная в Bash и большинство других популярных оболочек, таких как Zsh и Ksh. Поведение echo немного отличается от оболочки к оболочке.
Существует также отдельная /usr/bin/echo утилита, но обычно встроенная версия оболочки имеет преимущество.
Рассмотрим встроенную версию Bash echo.

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

Есть несколько моментов, которые следует учитывать при использовании echo команды.
  • Оболочка заменит все переменные, подстановочные знаки и специальные символы перед передачей аргументов в echo команду.
  • Хотя это и не обязательно, но хорошая практика программирования заключать аргументы, передаваемые echo в двойные или одинарные кавычки.
  • При использовании одинарных кавычек будет '' сохранено буквальное значение каждого символа, заключенного в кавычки. Переменные и команды не будут расширены.
В следующих примерах показано, как использовать команду echo.
Вывести строку текста на стандартный вывод echo Hello, World!
Цитата: вывод
Hello, World!
Отобразить строку текста, содержащую двойную кавычку
Чтобы напечатать двойные кавычки, заключите их в одинарные кавычки или экранируйте их символом обратной косой черты. echo 'Hello "Baksdev"' echo "Hello \"Baksdev\""
Цитата: вывод
Hello "Baksdev"
Показать строку текста, содержащую одну кавычку
Чтобы напечатать одинарную кавычку, заключите её в двойные кавычки или используйте квотирование ANSI-C. echo "I'm a Linux user." echo $'I\'m a Linux user.'
Цитата: вывод
I'm a Linux user.
Показать сообщение, содержащее специальные символы
Используйте -e опцию, чтобы включить интерпретацию escape-символов.
echo -e "You know nothing, Jon Snow.\n\t- Ygritte"
Цитата: вывод
You know nothing, Jon Snow.
    - Ygritte
Шаблон соответствия символов
Команда echo может быть использована с соответствующей моделью символами, такие как подстановочные знаки. Например, приведённая ниже команда вернёт имена всех .php файлов в текущем каталоге. echo The PHP files are: *.php
Цитировать
The PHP files are: index.php contact.php functions.php
Перенаправить в файл
Вместо отображения вывода на экране вы можете перенаправить его в файл , используя > , >> оператор.
echo -e 'The only true wisdom is in knowing you know nothing.\nSocrates' >> /tmp/file.txtЕсли file.txt не существует, команда создаст его. При использовании > файл будет перезаписан, тогда как файл >> будет добавлен в файл.
Используйте cat команду для просмотра содержимого файла:cat /tmp/file.txt
Цитата: вывод
The only true wisdom is in knowing you know nothing.
Socrates
Отобразить переменные
echo также может отображать переменные. В следующем примере мы распечатаем имя зарегистрированного пользователя:echo $USER
Цитата: вывод
Baksdev
$USER является переменной оболочкой , которая содержит имя пользователя.
Отобразить вывод команды
Используйте $(command) выражение, чтобы включить вывод команды в echo аргумент. Следующая команда отобразит текущую дату:
echo "The date is: $(date +%D)"
Цитата: вывод
The date is: 04/17/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"
Несмотря на свою простоту, команда echo может применяться для решения различных задач и незаменима при написании простых скриптов.
При создании темы использованы статьи: КОМАНДА ECHO В LINUX С ПРИМЕРАМИ и КОМАНДА ECHO В LINUX.
« Последнее редактирование: 07 Июня 2021, 17:30:11 от vita »
Делай с нами, делай как мы, делай лучше нас!

Оффлайн шур

  • Новичок
  • *
  • Сообщений: 36
Re: Команда echo в Linux
« Ответ #1 : 08 Июня 2021, 19:48:07 »
Команду echo можно использовать как простой калькулятор:

КАЛЬКУЛЯТОР
деление=/ умножение=* возведение в степень=** показать остаток от деления=%
Арифметическое раскрытие использует форму:
$((выражение))
Примеры:
Спойлер
$ ~$ echo остаток деления $((548576%27))  # 548576:27
остаток деления 17
 $ echo $((548576/27))  #просто деление
20317
$ echo $(($((5**2)) * 3))
75

КАЛЬКУЛЯТОР+АЛИАС+ПЕРЕМЕННАЯ
alias ec='echo $(($a))' # для арифметических вычислений с переменной, использовать так: a=5+3;ec 
Применение:
Спойлер
$ a=(3+5)/4;ec
2
$ a=2**4;ec
16
$ a=(3+5)/4+2;ec
4
$ a=(3+5)/4*4;ec
8
$ a=(3+5)+4*4;ec
24
$ a=(3+5)**4;ec
4096
$ a=(3+5)+2/2;ec
9
$ a=2*2+(3+5)/4;ec
6
$ a=30%7;ec   остаток от деления 30 на 7
2
$ a=30/7;ec;a=30%7;ec #сразу результат деления и остаток(даже без пробелов)
4
2
или
$ a=30/7;ec;echo остаток;a=30%7;ec
4
остаток
2
$ a=4+5+3**9+7;ec
19699
$ a=20*500/100;ec  #посчитать 20% от 500
100
~$ a=546*678/1000-388;ec  # даже учитывать отрицательные числа
-18

АЛИАС ДЛЯ ВЫЧИСЛЕНИЕ ПРОЦЕНТА ОТ ЧИСЛА, используя две переменные:
alias ec1='echo $(($a * $b / 100))' #вычисление процента от числа с помощью двух переменных, использовать:a=искомый процент b=число;ec1
~$ a=22 b=200;ec1  # 22% от 200
44

ВЫВОД В ЦВЕТЕ
Пример:
~$ echo -e "\033[0;34mчто-то тут"
что-то тут

ВЫВОД В ДВУХ ЦВЕТАХ НА ОДНОЙ СТРОКЕ
~$ echo -e "\033[0;34mчто-то тут"  "\033[0;31mне то"
что-то тут не то
Быть может пользователи сайта подскажут приём для вычисления корня числа с использованием команды echo.




Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3073
  • Что бы ни случилось, всё будет хорошо!
Re: Команда echo в Linux
« Ответ #2 : 08 Июня 2021, 22:12:44 »
Быть может пользователи сайта подскажут приём для вычисления корня числа с использованием команды echo.

Насколько помню в программировании функция вычисления квадратного корня sqrt. Применение echo и sqrt показано на примерах  здесь.

Оффлайн шур

  • Новичок
  • *
  • Сообщений: 36
Re: Команда echo в Linux
« Ответ #3 : 09 Июня 2021, 12:17:01 »
Отлично! Спасибо!
Тогда можно дополнить для квадратного корня(требуется наличие в системе пакета bc)
alias ec2='echo "scale=3; sqrt($a);" | bc -l'   # вычисление квадратного корня с точностью до 3 знаков; применять
~$ a=256;ec2
16,000
С КОНВЕЙЕРОМ
Спойлер
~$ a=34*4+789;ec|ec2
30.413
~$ a=34*4+789*2-1650;ec|ec2
8.000
НО ЭТО НЕ ПРОХОДИТ(с возведением в степень)
~$ a=2**4;ec|ec2
(standard_in) 1: syntax error
Придётся повозиться
~$ a=2*2*2*2;ec|ec2
4.000
« Последнее редактирование: 13 Июня 2021, 11:11:48 от шур »

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3073
  • Что бы ни случилось, всё будет хорошо!
Re: Команда echo в Linux
« Ответ #4 : 12 Июня 2021, 11:17:42 »
В некоторых языках для возведения в степень используется спецсимвол. Но для bash достаточно двух *.
Ликбез на опеннете.