Carriage return with echo command
This is not reproducible. The second command results in the output ␣my college , just like the first one.
2 Answers 2
The \r is just that, a «carriage return» — nothing else. This means what is after the \r will overwrite the beginning of what has already been printed.
echo has printed 1234 then gone back to the begining of the line and printed 56 over the top of 12 .
For a new line, try \n instead. No need for spaces too. For example:
echo -e "This is\nmy college"
The carriage return is useful for things like this:
#!/bin/sh i=0 while [ $i -lt 3 ] do echo -ne "\r"`date` #you should remove new line too sleep 1 i=$(($i + 1)) done exit
Which will display date over the top of itself instead of creating a new line after each loop.
carriage return is also used in the sysvinit provided functions. For example the function echo_success from /etc/init.d/functions .
Tigger has a good answer about what the \r does. One other trick for the Bourne shell (which works in different ways in other shells) is to clear the end of the line like so:
#/bin/sh -e echo "this is a first line. \r\c" . other code. echo "another line\033[K\r\c"
With the \033[K (kill the end of the line), you would get:
With the \033[K the output from the cursor position to the end of the line is cleared so the result of the above is:
This is practical for scripts that take a long time and you want to let the user know where you’re at (i.e. maybe a path you’re script is working on and the next path is shorter).
Note: As a side note, I’d like to specify that the \n is what sends your cursor to the next line. In the old MS-DOS, it just goes one line down, same column. This is why under MS-Windows you are still expected to write both characters ( \r\n ). Although in most cases people just write \n and things work as expected because the FILE has a «text mode» which inserts a \r before each \n (and also mangles binary files every so often. ).
Linux. Команда echo
Команда echo — это не системная утилита, у нее нет исполняемого файла. Она существует только внутри интерпретатора bash. Синтаксис команды очень прост:
- -n — не выводить перевод строки;
- -e — включить поддержку escape-последовательностей;
- -E — отключить поддержку escape-последовательностей (по умолчанияю).
Если включена опция -e , то можно использовать escape-последовательности:
- \c — удалить перевод строки;
- \t — горизонтальная табуляция;
- \v — вертикальная табуляция;
- \b — удалить предыдущий символ;
- \n — перевод строки;
- \r — возврат каретки в начало строки.
Примеры использования
Простой вывод строки на экран:
$ echo 'Linux Open Source Software Technologies'
Можно вывести значение переменной:
$ export BLOG='tokmakov.msk.ru' $ echo "Мой блог $BLOG"
Escaspe-последовательность \n переводит курсор на новую строку:
$ echo -e "Linux\nOpen\nSource\nSoftware\nTechnologies" Linux Open Source Software Technologies
С помощью последовательности \r можно удалить все символы до начала строки:
$ echo -e "Linux \rOpen Source Software Technologies" Open Source Software Technologies
Последовательность \c позволяет убрать перевод на новую строку:
$ echo -e "Linux Open Source Software Technologies\c"
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- 1С:Предприятие (31)
- API (29)
- Bash (43)
- CLI (99)
- CMS (139)
- CSS (50)
- Frontend (75)
- HTML (66)
- JavaScript (150)
- Laravel (72)
- Linux (143)
- MySQL (76)
- PHP (125)
- React.js (66)
- SSH (27)
- Ubuntu (66)
- Web-разработка (509)
- WordPress (73)
- Yii2 (69)
- БазаДанных (95)
- Битрикс (66)
- Блог (29)
- Верстка (43)
- ИнтернетМагаз… (84)
- КаталогТоваров (87)
- Класс (30)
- Клиент (27)
- Ключ (28)
- Команда (68)
- Компонент (60)
- Конфигурация (59)
- Корзина (32)
- ЛокальнаяСеть (28)
- Модуль (34)
- Навигация (31)
- Настройка (137)
- ПанельУправле… (29)
- Плагин (33)
- Пользователь (26)
- Практика (99)
- Сервер (74)
- Событие (27)
- Теория (104)
- Установка (65)
- Файл (47)
- Форма (58)
- Фреймворк (192)
- Функция (36)
- ШаблонСайта (68)
Команда 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.