Echo новой строки в Bash выводит литерал \n
Как мне вывести новую строку? В результате выполнения следующей команды просто выводится \n
:
echo -e "Hello,\nWorld!"
Вывод:
Hello,\nWorld!
5 ответ(ов)
Для использования printf
вместо echo
в вашей команде, вы можете записать её следующим образом:
printf "hello\nworld\n"
printf
ведет себя более последовательно в различных средах по сравнению с echo
, что делает его предпочтительным выбором, особенно если вы хотите избежать неожиданных проблем с интерпретацией управляющих символов. Например, echo
может по-разному обрабатывать символы новой строки и другие управляющие последовательности в зависимости от настроек оболочки и типа терминала. printf
же всегда интерпретирует форматированные строки одинаково, что обеспечивает более предсказуемое поведение.
Убедитесь, что вы находитесь в Bash.
$ echo $0
bash
Все эти четыре способа работают у меня:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
Если у вас возникнут дополнительные вопросы или вы захотите узнать больше об этих способах, не стесняйтесь спрашивать!
Вы всегда можете использовать echo ""
.
Например:
echo "Привет,"
echo ""
echo "Мир!"
Если кто-то из вас столкнулся с проблемой, когда скрипт вашего коллеги не выводит переносы строк, имейте в виду следующее:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
echo $(GET_RECORDS);
В приведённом примере фактический вызов функции обёрнут в команду echo
, что подавляет любые переносы строк, которые могут быть в самой функции. Очевидно, я немного упростил ситуацию, но это не так просто заметить!
Вы можете посоветовать своим товарищам, что более правильным способом вызова функций будет такой подход:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
GET_RECORDS;
Таким образом, переносы строк будут корректно отображаться.
Чтобы получить новую строку, просто введите
echo
Это выведет пустую строку в терминале.
Как изменить цвет вывода echo в Linux
Работа с буфером обмена в Bash-скрипте: ввод и вывод через пайп
Извлечение имени файла и расширения в Bash
Как установить Java 8 на Mac
Как работает "cat << EOF" в bash?