Форум проекта Matuntu

Поддержка => Руководства и инструкции => Тема начата: vita от 06 Июня 2021, 23:50:38

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

Синтаксис echo команды следующий:
echo [-neE] [ARGUMENTS]
Есть несколько моментов, которые следует учитывать при использовании 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"(https://i.imgur.com/AzWNP2A.png)
Несмотря на свою простоту, команда echo может применяться для решения различных задач и незаменима при написании простых скриптов.
При создании темы использованы статьи: КОМАНДА ECHO В LINUX С ПРИМЕРАМИ (https://baks.dev/article/terminal/echo-command-in-linux-with-examples) и КОМАНДА ECHO В LINUX (https://losst.ru/komanda-echo-v-linux).
Название: Re: Команда echo в Linux
Отправлено: шур от 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.



Название: Re: Команда echo в Linux
Отправлено: ivm от 08 Июня 2021, 22:12:44
Быть может пользователи сайта подскажут приём для вычисления корня числа с использованием команды echo.

Насколько помню в программировании функция вычисления квадратного корня sqrt. Применение echo и sqrt показано на примерах  здесь (https://qna.habr.com/q/227265).
Название: Re: Команда echo в Linux
Отправлено: шур от 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
Название: Re: Команда echo в Linux
Отправлено: ivm от 12 Июня 2021, 11:17:42
В некоторых языках для возведения в степень используется спецсимвол. Но для bash достаточно двух *.
Ликбез на опеннете (https://www.opennet.ru/docs/RUS/bash_scripting_guide/c2792.html).