Я пытаюсь направить ввод / вывод трех или более подпроцессов, используя uiop:launch-program
, что эквивалентно примерно так в оболочке: C:\> ipconfig | sort | strings
.
Я попытался получить поток вывода одной программы и устанавливая его как входной поток другого, многократно до последней программы. Ниже мой код для трех подпроцессов, который не работает.
(uiop:run-program "strings"
:input (uiop:process-info-output
(uiop:launch-program "sort"
:input
(uiop:process-info-output
(uiop:launch-program "ipconfig"
:output :stream))
:output :stream))
:output :interactive)
Это приводит к пустой строке, когда я думаю, что это не должно.
Интересно то, что трубопровод между два подпроцесса работают как положено. Ниже приведен мой код для двух подпроцессов, который работает.
(uiop:run-program "sort"
:input
(uiop:process-info-output
(uiop:launch-program "ipconfig"
:output :stream))
:output :string)
Это возвращает непустую строку, которую я ожидаю.
Пожалуйста, помогите мне воплотить мои мечты о соединении трех программ вместе правда.