Eu uso parênteses para criar fluxo de dados de entrada (de várias fontes) para o próximo comando. Por exemplo:
(date; pwd; cat file1.txt) | less
o que é conveniente e funciona bem. Mas este é um método aceitável/padrão? Qual é a regra geral sobre esta forma de gerar fluxo de entrada? Não consigo encontrar nenhuma referência para obter mais detalhes.
Bem, "aceitável" geralmente é algo aos olhos de um revisor, e questões baseadas em opinião não são uma boa opção para SE, mas acho que podemos considerar as alternativas e deixar que todos façam sua escolha.
Agrupar os comandos de alguma forma é algo que você precisa fazer para que funcione corretamente, e usá-
(...)
los é uma solução direta. A outra opção de uma linha éque é o mesmo, mas não envolve um subshell (além de quando você obtém do canal, então pode nem fazer diferença), e a sintaxe é mais feia com o espaçamento obrigatório e o ponto e vírgula final. Consulte, por exemplo, o manual do Bash para esses dois: 3.2.5.3 Comandos de agrupamento .
Claro que você pode esconder o grupo de comandos dentro de um script externo, mas ter um arquivo extra é inconveniente. Colocar os comandos em uma função pode funcionar como um bom meio termo. Crie uma função como
e, em seguida, use
somestuff | less
se isso parecer melhor no contexto.