Сообщение об ошибке на терминале несмотря на использование 2> символа

Если Вы используете isc-dhcp-client, условия сделаны для "сценариев рычага", которые будут работать на различных этапах процесса DHCP, включая то, когда адрес будет получен. /etc/dhcp/dhclient-enter-hooks.d или подобный.

2
27.04.2016, 21:13
2 ответа

2> перенаправляет стандартную погрешность cat. cat не выполняется однако, потому что удар не может открыть файл, к которому Вы указали как стандартный вход cat. Для получения поведения, Вы хотите, используете

(cat < foo) 2> bar

Это будет работать cat < foo в подоболочке и перенаправлении вывод ошибок удара к панели. Если Вы также хотите вывод ошибок от кошки, Вы могли бы сделать

(cat < foo 2> bar) 2> bar2
3
27.01.2020, 21:57

Как @Casey примечания, помещая команду в подоболочку работает:

$ ( cat <foo ) 2>bar

Однако подоболочка не необходима. Простой список работает точно также:

$ { cat <foo ; } 2>bar

Вам даже не нужен список, если Вы замечаете, что порядок, в котором сделаны перенаправления, имеет значение:

$ cat <foo 2>bar
bash: foo: No such file or directory
$ cat 2>bar <foo

Мое заключение состоит в том, что то, что имеет значение, является заказом обработки удара: проблема - был ли stderr перенаправлен прежде или с момента, когда удар обнаруживает, что перенаправление stdin перестало работать. Таким образом нет никакого вывода от последнего примера выше, потому что удар сначала перенаправляет stderr и затем пытается открыть нечто для stdin.

2
27.01.2020, 21:57

Теги

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