#unix #descriptor
#unix #дескриптор
Вопрос:
На данный момент я изучаю файловые дескрипторы в unix:
echo 'bat' 1>amp;1 | sed 's/b/c/'
echo 'bat' 2>amp;1 | sed 's/b/c/'
Первая строка возвращает «cat cat», а вторая строка возвращает «bat cat», поэтому я изо всех сил пытаюсь понять, что происходит.
Во второй строке FD2 (STDERR) перенаправляется на FD1 (STDOUT), который ничего не выводит. Затем он выводит bat в FD1 И передает другой bat в sed, так что мы получаем bat и cat.
Почему та же логика не работает для первой строки? Разве он не будет выводить bat в стандартный вывод, а затем передавать другой bat в sed для вывода «bat cat»?
Комментарии:
1. Оба должны возвращать cat один раз, поскольку вывод bat передается в sed и преобразуется в cat?
2. это zsh. каждая команда возвращает дважды, с разными результатами!