Как вставить новую строку в оболочку Linux script?
Я хочу вставить новую строку между несколькими инструкциями эха. Я пробовал echo "hello\n", но он не работает. Он печатает \n. Я хочу получить нужный результат следующим образом:
Create the snapshots
Snapshot created
Ответ 1
Самый простой способ вставить новую строку между операторами echo - это вставить echo без аргументов, например:
echo Create the snapshots
echo
echo Snapshot created
То есть echo без аргументов будет печатать пустую строку.
Еще одна альтернатива использованию одного оператора echo с флагом -e и встроенными символами новой строки \n:
echo -e "Create the snapshots\n\nSnapshot created"
Однако это не переносимо, поскольку флаг -e не работает последовательно во всех системах. Лучше, если вы действительно хотите это сделать, используйте printf:
printf "Create the snapshots\n\nSnapshot created\n"
Это работает более надежно во многих системах, хотя это не соответствует POSIX. Обратите внимание, что вы должны вручную добавить \n в конце, так как printf не добавляет новую строку автоматически, как это делает echo.
Ответ 2
Используйте этот оператор эха
echo -e "Hai\nHello\nTesting\n"
Выходной сигнал
Hai
Hello
Testing
Ответ 3
echo $'Create the snapshots\nSnapshot created\n'
Ответ 4
Вы можете использовать команду printf (1), например. как
printf "Hello times %d\nHere\n" $[2+3]
Команда printf может принимать аргументы и нужна строка управления форматом, аналогичная (но не точно такая же), что и для стандартного C printf (3 )...