Меню Рубрики

Echo linux new line

How to add new lines when using echo

Why does the following command not insert new lines in the generated file and what’s the solution?

8 Answers 8

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 .

A string to be written to standard output. If the first operand is -n , or if any of the operands contain a \ backslash> 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:

\c — Suppress the that otherwise follows the final argument in the output. All characters following the \c in the arguments shall be ignored.

Источник

Echo newline in Bash prints literal \n

In Bash, tried this:

But it doesn’t print a newline, only \n . How can I make it print the newline?

I’m using Ubuntu 11.04.

23 Answers 23

You could use printf instead:

printf has more consistent behavior than echo . The behavior of echo varies greatly between different versions.

Are you sure you are in bash? Works for me, all four ways:

Words of the form $’string‘ are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard.

You could always do echo «» .

worked for me in nano editor.

-e enable interpretation of backslash escapes

In the off chance that someone finds themselves beating their head against the wall trying to figure out why a coworker’s script won’t print newlines, look out for this ->

As in the above, the actual running of the method may itself be wrapped in an echo which supersedes any echos that may be in the method itself. Obviously I watered this down for brevity, it was not so easy to spot!

You can then inform your comrades that a better way to execute functions would be like so:

Источник

Команда 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. Для доступны такие цвета текста:

  • \033[30m — чёрный;
  • \033[31m — красный;
  • \033[32m — зелёный;
  • \033[33m — желтый;
  • \033[34m — синий;
  • \033[35m — фиолетовый;
  • \033[36m — голубой;
  • \033[37m — серый.

И такие цвета фона:

  • \033[40m — чёрный;
  • \033[41m — красный;
  • \033[42m — зелёный;
  • \033[43m — желтый;
  • \033[44m — синий;
  • \033[45m — фиолетовый;
  • \033[46m — голубой;
  • \033[47m — серый;
  • \033[0m — сбросить все до значений по умолчанию.

Например. раскрасим нашу надпись в разные цвета:

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. Несмотря на свою простоту, она может применяться для решения различных задач и незаменима при написании простых скриптов. Надеюсь, эта информация была вам полезной.

Источник

echo newline suppression [duplicate]

Why doesn’t $echo ‘-n’ write -n on terminal although -n is written within single quotes ?

6 Answers 6

Because the quotes are processed by the shell and the echo command receives plain -n . If you want to echo -n , you can e.g. printf ‘%s\n’ -n

you should try to use the more portable printf as far as possible.

I found that the following just works in bash:

So, you should put -n the first place.

The quotes don’t help because . ugh, it’s hard to explain. The shell strips the quotes off before the «echo» command itself is evaluated, so by that time they don’t matter.

That’s not documented as working (I’m running Ubuntu Linux), but echo is almost certainly a built-in to whatever shell you’re using, so the man page is questionable anyway. It does work for me. (I’m running zsh because I’m really suave and sophisticated).

edit: well it seems that the bash builtin edit doesn’t behave that way. I don’t know what to suggest; this:

will give you «-n» preceded by a space, which (depending on what you’re doing) might be OK.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Jedi academy mac os
  • Java для mac os sierra
  • Java mac os установка
  • Java mac os как удалить
  • Java mac os uninstall