Столкнулся с тем, что Bash-скрипт не хочет преобразовывать символ "\n" в символ перевода строки. Команда
rettpop@host$ echo "Line1\nLine2"
Line1\nLine2
так и выводится.
Оказалось, что в заголовке скрипта исполнителем прописан имеено Bash:
#!/bin/bash
Заменил эту строку на
#!/bin/sh
и все стало на свои места.
rettpop@host$ echo "Line1\nLine2"
Line1
Line2
Вообще, рекомендуется в шелл-скриптах *x-систем указывать исполнителем именно /bin/sh, т.к. это в основном символическая ссылка на оболочку по-умолчанию. Пруф-линк не приведу, но мои предпочтения подтверждались в старинных манускриптах по Юниксу.
sh - символьная ссылка на dash? Вариант решения проблемы еще такой:
ОтветитьУдалитьzen@debian:~$ echo "Line1\nLine2"
Line1\nLine2
zen@debian:~$ echo -en "Line1\nLine2"
Line1
Line2