Почему оболочка обрабатывает часть вывода $ (

После того, как произошла подстановка (которая, кстати, в POSIX могла быть нацелена только на левую сторону перед любым «>»), больше нет оценки того, есть ли какой-либо «>», поэтому подход, который вы предполагали, не будет работать.

Если вас не волнует соответствие POSIX (в конце концов, вы отметили это как «bash»), вы все равно можете найти решение, динамически задав правую часть, но я лично выбрал бы совершенно другой подход; посмотрите следующий пост, в котором подробно описывается подробный / тихий режим на основе пользовательских дескрипторов файлов: https://stackoverflow.com/a/20942015/2261442 .

Отрывок кода из этого сообщения, чтобы показать, как он тогда будет хорошо выглядеть:

# Some confirmations:
printf "%s\n" "This message is seen at verbosity level 3 and above." >&3
printf "%s\n" "This message is seen at verbosity level 4 and above." >&4
printf "%s\n" "This message is seen at verbosity level 5 and above." >&5

3
28.04.2018, 15:43
0 ответов

Теги

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