Команда echo в Linux
Команда echo — это очень простая и в то же время часто используемая встроенная команда оболочки Bash. Она имеет только одно назначение — выводить строку текста в терминал, но применяется очень часто в различных скриптах, программах, и даже для редактирования конфигурационных файлов.
В этой статье мы рассмотрим что представляет из себя команда echo linux, как ее можно использовать и в каких ситуациях. Но сначала рассмотрим синтаксис самой команды.
Команда echo linux
Команда echo — это не системная утилита, у нее нет исполняемого файла. Она существует только внутри интерпретатора Bash. Синтаксис команды echo linux очень прост:
$ echo опции строка
Опций всего несколько, давайте рассмотрим их, чтобы вы могли лучше ориентироваться в работе утилиты:
- -n — не выводить перевод строки;
- -e — включить поддержку вывода Escape последовательностей;
- -E — отключить интерпретацию Escape последовательностей.
Это все опции, если включена опция -e, то вы можете использовать такие Escape последовательности для вставки специальных символов:
- /c — удалить перевод строки;
- /t — горизонтальная табуляция;
- /v — вертикальная табуляция;
- /b — удалить предыдущий символ;
- /n — перевод строки;
- /r — символ возврата каретки в начало строки.
Пожалуй, это все, что нужно знать о команде echo, а теперь давайте рассмотрим как с ней работать.
Примеры работы echo
Давайте рассмотрим как пользоваться echo. Сначала просто выведем строку на экран:
echo Linux Open Source Software Technologies
Также можно вывести значение переменной. Сначала объявим переменную:
Затем выведем ее значение:
Как уже говорилось, с помощью опции -e можно включить интерпретацию специальных последовательностей. Последовательность \b позволяет удалить предыдущий символ. Например, удалим все пробелы из строки:
echo -e «Linux \bopen \bsource \bsoftware \btechnologies»
Последовательность \n переводит курсор на новую строку:
echo -e «Linux \nopen \nsource \nsoftware \ntechnologies»
С помощью \t вы можете добавить горизонтальные табуляции:
echo -e «Linux \topen \tsource \tsoftware \ttechnologies»
Можно совместить переводы строки и табуляции:
echo -e «Linux \tnopen \tnsource \tnsoftware \tntechnologies»
Точно так же можно применить вертикальную табуляцию:
echo -e «Linux \vopen \vsource \vsoftware \vtechnologies»
С помощью последовательности \r можно удалить все символы до начала строки:
echo -e «Linux \ropen source software technologies»
Последовательность -c позволяет убрать перевод на новую строку в конце сообщения:
echo -e «Linux open source software technologies\c»
Дальше — больше. Вы можете разукрасить вывод echo с помощью последовательностей управления цветом Bash. Для доступны такие цвета текста:
Например. раскрасим нашу надпись в разные цвета:
echo -e «\033[35mLinux \033[34mopen \033[32msource \033[33msoftware \033[31mtechnologies\033[0m»
С основными параметрами команды echo разобрались, теперь рассмотрим еще некоторые специальные символы bash. Вы можете вывести содержимое текущей папки просто подставив символ *:
Также можно вывести файлы определенного расширения:
Я уже говорил, что echo можно использовать для редактирования конфигурационных файлов. Вы можете использовать запись echo в файл linux, если он пуст:
echo 1 > /proc/sys/net/ipv4/ip_forward
Если файл не пуст, и вам необходимо добавить свою строчку в конец файла используйте символ перенаправления вывода >>:
echo «UUID=09ec0871-2f55-4dd5-aeb2-cacc4a67907c /var/tmp btrfs subvol=@/var/tmp 0 0» >> /etc/fstab
Если строка содержит какие-либо специальные символы или может быть понята интерпретатором неоднозначно, следует заключить ее в кавычки.
Выводы
В этой статье была рассмотрена команда echo linux. Несмотря на свою простоту, она может применяться для решения различных задач и незаменима при написании простых скриптов. Надеюсь, эта информация была вам полезной.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Команда 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 — отображает вертикальную вкладку.
При использовании команды echo следует учитывать несколько моментов.
- Оболочка заменит все переменные, сопоставление подстановочных знаков и специальные символы перед передачей аргументов команде echo .
- Хотя это и не обязательно, рекомендуется заключать аргументы, передаваемые в echo в двойные или одинарные кавычки.
- При использовании одинарных кавычек » буквальное значение каждого символа, заключенного в кавычки, будет сохранено. Переменные и команды расширяться не будут.
echo Примеры
В следующих примерах показано, как использовать команду echo:
- Вывести строку текста на стандартный вывод.
echo -e "You know nothing, Jon Snow.nt- Ygritte"
You know nothing, Jon Snow. - Ygritte
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 для просмотра содержимого файла:
The only true wisdom is in knowing you know nothing. Socrates
echo -e "33[1;37mWHITE"
echo -e "33[0;30mBLACK"
echo -e "33[0;34mBLUE"
echo -e "33[0;32mGREEN"
echo -e "33[0;36mCYAN"
echo -e "33[0;31mRED"
echo -e "33[0;35mPURPLE"
echo -e "33[0;33mYELLOW"
echo -e "33[1;30mGRAY"
Выводы
К настоящему времени вы должны хорошо понимать, как работает команда echo .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
echo command in Linux with Examples
The echo is a bash builtin command that is used to echo the string(s) to the standard output. command that is used to echo the string(s) to the standard output.
Options
The program accepts the following options.
-n do not output the trailing newline -e enable interpretation of backslash escapes -E disable interpretation of backslash escapes (default) --help display this help and exit --version output version information and exit If -e is in effect, the following sequences are recognized: \\ backslash \a alert (BEL) \b backspace \c produce no further output \e escape \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \0NNN byte with octal value NNN (1 to 3 digits) \xHH byte with hexadecimal value HH (1 to 2 digits)
Examples
echo a list of strings on command line.
$ echo "Shambhavi Vidya" Shambhavi Vidya $ $ echo "Shambhavi \nVidya" Shambhavi \nVidya $
-e option enables the interpretation of backslash escape sequences inside the strings.
\n option creats a newline from where it is used.
$ echo -e "Shree \nLaxmi" Shree Laxmi
String Laxmi is printed after the newline.
-n option suppresses the output trailing new line.
$ echo -n -e "Shree \nLaxmi" Shree Laxmi$
After the last string Laxmi, the newline has been suppressed and command prompt $ appears on the same line immediately after the string Laxmi ends.
Using the option \b inside the string removes the whitespace between the strings.
$ echo -e "Shree \bLaxmi" ShreeLaxmi
Display output of a command in echo’s argument. Use $(command) option of bash shell to show current date.
$ echo "The date is: $(date)" The date is: Wed Mar 24 20:18:00 IST 2021 $ echo "The date is: $(date +%D)" The date is: 03/24/21
Use \n\v simultaneously inside a string to print string on a new line and skip one line.
$ echo -e "\n\vTutorials\n\vPoint\n\vis\n\vhosting\n\velearning\n\vcontet" Tutorials Point is hosting elearning contet $
Use \uXXXX option inside a string to display unicode character. Unicode value of Hindi character क is 0915, म is 092e and ल is 0932.
$ echo -e 'my name is \u0915\u092e\u0932' my name is कमल $
How to add new lines when using echo
I didn’t know about printf, with printf it works 😛 . so what does it make not working with echo then?
There are many different implementations of echo command incompatible with each other. Thus it is recommended to use more standard tool as printf . See unix.stackexchange.com/questions/65803/… for extended overview of the problem.
9 Answers 9
Pass the -e flag to echo to make it parse escaped characters such as «\r\n», like so:
echo -e "Line 1\r\nLine2" >> readme.txt
A nice simple «-e» option to get escape sequences working — it says on another answer that echo is unreliable and doesn’t follow standards unlike printf .
echo
An echo implementation which strictly conforms to the Single Unix Specification will add newlines if you do:
But that is not a reliable behavior. In fact, there really isn’t any standard behavior which you can expect of echo .
OPERANDS
string
A string to be written to standard output. If the first operand is -n , or if any of the operands contain a character, the results are implementation-defined.
On XSI-conformant systems, if the first operand is -n , it shall be treated as a string, not an option. The following character sequences shall be recognized on XSI-conformant systems within any of the arguments:
\a — Write an .
\b — Write a .
\c — Suppress the that otherwise follows the final argument in the output. All characters following the \c in the arguments shall be ignored.
\f — Write a .
\n — Write a .
\r — Write a .
\t — Write a .
\v — Write a .
\\ — Write a character.
\0num — Write an 8-bit value that is the zero, one, two, or three-digit octal number num .
And so there really isn’t any general way to know how to write a newline with echo , except that you can generally rely on just doing echo to do so.
A bash shell typically does not conform to the specification, and handles the -n and other options, but even that is uncertain. You can do:
shopt -s xpg_echo echo hey\\nthere
And not even that is necessary if bash has been built with the build-time option.
—enable-xpg-echo-default
Make the echo builtin expand backslash-escaped characters by default, without requiring the -e option. This sets the default value of the xpg_echo shell option to on , which makes the Bash echo behave more like the version specified in the Single Unix Specification, version 3. See Bash Builtins, for a description of the escape sequences that echo recognizes.
printf
On the other hand, printf ‘s behavior is pretty tame in comparison.
RATIONALE
The printf utility was added to provide functionality that has historically been provided by echo . However, due to irreconcilable differences in the various versions of echo extant, the version has few special features, leaving those to this new printf utility, which is based on one in the Ninth Edition system.
The EXTENDED DESCRIPTION section almost exactly matches the printf() function in the ISO C standard, although it is described in terms of the file format notation in XBD File Format Notation.
It handles format strings which describe its arguments — which can be any number of things, but for strings are pretty much either %b yte strings or literal %s trings. Other than the %f ormats in the first argument, it behaves most like a %b yte string argument, except that it doesn’t handle the \c escape.
echo() printf
You might write your own standards conformant echo like.
. which should pretty much always do the right thing automatically.
Actually, no. That prints a literal \n at the tail of the arguments if the last argument ends in an odd number of .
echo() case $ in (\ *) printf %b\\n "$*";; (*) IFS=\ $IFS printf %b\\n "$*" IFS=$ esac