\ n не работает на терминале

\n не распознается как «строка изменения». Он просто печатает \n.

Мой терминал - это гном-терминал 3.6.2.

Сначала я заметил его с помощью эхо-команд, а затем с командами оболочки.

[d3 ] Какие-либо предложения относительно того, почему это не работает?

1
задан 7 August 2015 в 09:37

1 ответ

Ответ Serg решает только проблему с печатью новой строки (echo, printf). Если вам нужно использовать новую строку вообще в сценариях оболочки, вот несколько советов, которые демонстрируют использование новой строки, сохраняя ее в переменной $NL. Когда код работает правильно echo "a${NL}b", затем печатает:

a
b

POSIX-совместимый sh

Вы можете использовать литерал новой строки:

NL="
"

Вы можете сгенерируйте новую строку, используя printf и подстановку команд:

NLx="$(printf \\nx)" ; NL="${NLx%x}"

Добавление x и последующее его удаление необходимо, потому что подстановка команд удаляет все строки новой строки в конце результирующей строки.

Bash

В Bash вы можете использовать escape-последовательности для представления управляющих символов в строке между $' и ':

NL=$'\n'

Это очень удобный, но, к сожалению, не портативный.

1
ответ дан 23 May 2018 в 18:26

Другие вопросы по тегам:

Похожие вопросы: