Come posso reindirizzare lo stdout di più comandi a un singolo comando?Convogliare più comandi in un unico comando
Esempio 1: combinare e ordinare l'output di tutti i tre comandi echo:
echo zzz; echo aaa; echo kkk
uscita desiderato
aaa
kkk
zzz
Esempio 2: Riscrivi il seguente in modo che tutti i comandi sono in una singola riga di comando tramite pipe, senza reindirizzamenti a un file temporaneo:
setopt > /tmp/foo; unsetopt >> /tmp/foo; set >> /tmp/foo; sort /tmp/foo
+1. Puoi anche usare parentesi che non generano una subshell. La sintassi è un po 'più rigida: '{setopt; unsetopt; impostato; } | ordinare | less' - sono richiesti gli spazi bianchi attorno alle parentesi e il punto e virgola finale. –
@glenn: non importa (testato in bash 3.2.48), poiché la pipeline lo costringe comunque in una subshell. –
Va notato che '$' è il prompt, non parte del comando – Gilly