sed -n '/^[[:space:]]/s/^.//p' >&3 | find /usr/local -type f | fgrep -vxf /dev/fd/3 ) 3<>/dev/fd/1
При запуске из терминала с интерактивным шеллом он должен открыть третий дескриптор, подключив его к терминалу, затем запустить вложенный шелл с конвейером и у всех команд конвейера должен быть доступен третий дескриптор.
Все команды конвейера запускаются параллельно. Вывод sed перенаправляется в третий дескриптор. find свой stdin не читает. fgrep должен на своём stdin получать выдачу find и выдачу sed из третьего дескриптора. Не работает.
Если заменить 3<>/dev/fd/1 на 3<>/tmp/plist - работает.
Почему так?
дерни procstat в сабшелле, что там с этим третьим дескриптором
Обсуждают сегодня