Я немного запутался в печати переменной, содержащей новый символ строки в bash.bash printf с новой строкой
var="Age:\n20\ncolor:\nred"
echo -e $var
Age:
20
color:
red
Это работает, но многие люди говорят, что эхо с вариантами является not portable и it is better to use printf.
Я никогда не использовал prinf. В соответствии с руководствами для эмулирования команды эхо-сигнала:
printf '%s\n' "$var"
Age:\n20\ncoloe:\nred
Но это не анализирует внутреннюю переменную \ n. Инструкции, как правило, этот пример:
printf "Surname: %s\nName: %s\n" "$SURNAME" "$LASTNAME"
Но это не мой случай, и с моей точки зрения, это не очень удобно пользоваться. Я узнал, просто набрав, что я могу использовать это:
PRINTF «$ уаг \ п»
Является ли это портативный компьютер? Если я передаю команду $ var команде mail, она сохранит новые разрывы строк?
printf "$var\n" | mail -s subj [email protected]
Проблема с 'printf' является то, что он является оболочкой встроенный в некоторых оболочках (Баш и ksh93), но внешний процесс на других (ш, ksh88, CSH) , Поэтому использование 'printf' в старых оболочках может замедлить вашу программу, в зависимости от того, сколько раз вы ее используете. – cdarke