'printf> &2' эквивалентен 'эху> &2'?

Это не вопрос printf по сравнению с echo.

Я пытаюсь отредактировать свой сценарий для использования printf исключительно, и у меня есть следующее в моем коде:

echo >&2 'Failed to initialize REPL repo. Please report this!'

Если я заменяю echo с printf, это представит какие-либо побочные эффекты (из-за >&2)?

printf >&2 'Failed to initialize REPL repo. Please report this!\n'

Я не мог найти ответ в askubuntu. Или нет один или поиск, игнорирует > и & персонажи.

1
задан 20 December 2018 в 01:37

2 ответа

Перенаправление как >&2 функция оболочки, запускающей Ваш скрипт, программа, вывод которой перенаправляется, не важна для него. Да, если Вы только спрашиваете о перенаправлении, это - то же – Вы не должны волноваться об этом, если Вы не изменяете оболочку. См. руководство своей оболочки для получения дополнительной информации об этой функции, например. man bash/ ПЕРЕНАПРАВЛЕНИЕ для bash.

Существует хороший ответ о различиях между echo и printf на Unix & Linux: Почему printf лучше, чем эхо?

Что касается того, почему Вы не можете искать символы на AU, видеть это meta Вопросы и ответы: Как искать AU строку, содержащую “$”?

4
ответ дан 3 December 2019 в 06:24

Если я заменю эхо printf, то оно представит какие-либо побочные эффекты (из-за> &2)?

>&2 часть не имеет никакого отношения также echo ни printf. >& оператор перенаправления оболочки, где в этом случае он копирует stdout (подразумеваемый, с хотя можно было сослаться явно 1>&2) из команды к stderr (дескриптор файла 2). Они могут появиться в любом порядке в команде в подобных границе оболочках. Единственная проблема, которая может произойти, с csh оболочка и ее производные (см. связанное сообщение). Так, пока Вы используете подобные границе оболочки ( dash, bash, ksh ) необходимо быть в порядке.

Что касается printf по сравнению с echo обычно printf предпочтен, потому что это более портативно. Посмотрите, Почему printf лучше, чем эхо?

3
ответ дан 3 December 2019 в 06:24

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

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