Executando exe com parâmetros em bash e passando sua saída para outro programa [duplicado]
Tenho que chamar um programa prog1.exe e fornecer argumentos para ele e dar a saída para outro prog2.exe executável em um script bash
prog1 "arguments" | prog2
echo finished
Como posso fazer isso funcionar? Também suponho que o echocomando não será executado antes que prog2 termine o seu trabalho?
EDIT: Quando eu corro
prog1 "argument"
prog2 "example"
prog1 "argument" | prog2
Obtive a saída correta do prog1 - std::cout << "arguments" << std::endle é exibido muito bem no console e também o prog2 está criando arquivos, de example.txtforma que ambos os programas estão funcionando individualmente. Apenas colocá-los juntos prog1 "arguments" | prog2não resolve
Respostas
Esta não é realmente uma pergunta bash. Esta é realmente uma questão de C ++. prog2 deve ser lido de stdin como jordanm sugeriu nos comentários. Algo assim será lido de stdin linha por linha:
for (std::string line; std::getline(std::cin, line);) {
std::cout << line << std::endl;
}
Altere o coutpara fazer o que quiser com ele em cada linha.