2016-07-28 2 views

ответ

7

Я думаю, что это делает то, что вы хотите:

$ echo "${my_var//$'\n'/\\n}" 
foo\nbar\nbaz 

Есть две важные вещи, чтобы отметить:

  1. Quote ваши переменные! Ваше расширение не делало никаких замен, но пробел в переменной раздавался из-за разбиения слов. echo печатает каждый из своих аргументов, разделенных одним пробелом.
  2. Используйте $'\n' для строки стиля C, чтобы получить символ новой строки в поле часть расширения.
1

Это работает:

$ echo "${my_var//  
/\\n}" 
foo\nbar\nbaz 

Соответствующий вывод: Для того, чтобы вставить буквальный перевод строки в любом месте в команде, не запуская его, вы можете нажать Ctrl-VCtrl-Enter.

Смежные вопросы