Intereting Posts
Как я могу запустить `hackxor` внутри VirtualBox? touch: не может касаться `foo ': нет такого файла или каталога В Linux существует ли эквивалент rc.local для выключения? как настроить последовательность загрузки с помощью systemd Не все процессоры вошли в обработчик исключений широковещания Ошибка ядра сначала не обрабатывается первый параметр, если он не равен 1 Каков рекомендуемый способ проверки запущенных сервисов? Совместное использование локального каталога между локальными пользователями с полными разрешениями Почему mono-complete полностью устарел во всех версиях Debian? Почему мигает BBM eMMC так долго с SD-карты, и как я могу контролировать ход? Как хранить / загружать экспортированные переменные среды в / из файла dpkg-deb: ошибка: управляющий каталог имеет плохие разрешения Как изменить поведение авто-отступа vim? проблема с установкой fedora 19 Как я могу найти информацию о программном обеспечении управления пакетами в системах linux (unix), в частности в облаке?

Выход трубопровода sed / grep не работает

Если я запустил приведенные ниже команды, то только out1 имеет выход, out2 и out3 пусты.

 # this is just to generate a self-signed certificate openssl genrsa -out /tmp/ssl.key 2048 openssl req -sha256 -new -key /tmp/ssl.key -out /tmp/ssl.csr -subj /CN=localhost openssl x509 -req -days 365 -in /tmp/ssl.csr -signkey /tmp/ssl.key -out /tmp/ssl.crt # works openssl s_server -cert /tmp/ssl.crt -key /tmp/ssl.key -accept 444 > out1 # does not work, but if I run without '> out2' it works openssl s_server -cert /tmp/ssl.crt -key /tmp/ssl.key -accept 446 | sed "s/ACCEPT/ACCEPT445/g" > out2 # does not work, but if I run without '> out3' it works openssl s_server -cert /tmp/ssl.crt -key /tmp/ssl.key -accept 447 | grep ACCEPT > out3 

Почему перенаправление stdout из sed или grep не выполняется, но работает без перенаправления?

Попробуйте sed -u ( -l в системах BSD / Mac OSX) и grep --line-buffered .

Кажется, вы ожидаете, что out2 и out3 будут записаны в реальном времени, но sed и grep в трубке ждут EOF. И здесь ничего не получается.

Убейте openssl с другой консоли и проверьте, есть ли у вас правильные результаты в out2 и out3 .