Подтвердить что ты не робот

Что более переносимо? echo -e или с помощью printf?

В настоящее время я пишу структуру тестирования bash, которая должна быть как можно более переносимой.

Итак, в какой-то момент мне пришлось напечатать ведущую строку новой строки, за которой следует текст, содержащий несколько расширенных переменных. Это решение, которое я использовал.

echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"

Это похоже на все, но я не уверен, насколько переносимость сравнивается с печатью строки, например, printf?

Любые идеи или подсказки, где я мог бы найти ссылки?

4b9b3361

Ответ 1

printf более портативен. Он всегда должен быть предпочтительнее echo -e. Если таргетинг на bash/zsh/ksh определенно, echo $'...' тоже нормально. Если таргетинг на zsh или ksh определенно, print в порядке.

POSIX (последняя ссылка) также обсуждает проблемы echo -n, которых также следует избегать. В принципе, никогда не используйте параметры echo, а для переносимости используйте printf.)

Ответ 2

Самое портативное (с точки зрения переносимости к древним системам без printf) решение для ведущих новых строк, очевидно,

echo
echo "$number_of_specs ${units}, $number_of_specs_failed failed"