Echo настолько девяностых и настолько чреват опасностями, что его использование должно привести к дампам ядра не менее 4 ГБ. Серьезно, проблемы с эхо были причиной того, что процесс стандартизации Unix, наконец, изобрел утилиту printf
, избавившись от всех проблем.
Итак, чтобы получить новую строку в строке:
FOO="hello
world"
BAR=$(printf "hello\nworld\n") # Alternative; note: final newline is deleted
printf '<%s>\n' "$FOO"
printf '<%s>\n' "$BAR"
Там! Нет SYSV против BSD эха безумия, все становится аккуратно напечатано и полностью переносимая поддержка C escape-последовательностей. Всем, пожалуйста, используйте printf
сейчас и никогда не оглядывайтесь назад.