pipeartig commands "aggregieren" auf der Shell

Bash, Shell, PHP, Python, Perl, CGI
mk
Posts: 18
Joined: 2005-09-27 10:44

pipeartig commands "aggregieren" auf der Shell

Post by mk »

Super Titel, was?
es geht aber eigentlich nur um folgendes:
gibt es auf der shell (bash o.ä) eine Möglichkeit, den Output verschiedener commands quasi zu "sammeln" und erst am Ende der Kette gesammelt auszuspucken, ohne diese in einer Datei zwischenzuspeichen?

also eine Art pipe "|", nur dass nicht bloss der letzte Befehl "gepiped" wird, sondern der Output mehrerer?

Ich versuche, mir einen cronjob zurechtzuzimmern, der mir Traffic-Stats aus vnstat per mail schickt und es muss doch einfacher gehen als so:

Code: Select all

vnstat -q >> /tmp/vnstat.tmp;
vnstat -w >> /tmp/vnstat.tmp;
vnstat -m >> /tmp/vnstat.tmp;
vnstat -t  >> /tmp/vnstat.tmp;
cat /tmp/vnstat.tmp |
mail -s "Traffic Stats" mail@addresse.tld;
rm -f /tmp/vnstat.tmp
... oder? :)
mr_neutron
Posts: 14
Joined: 2004-09-06 18:57

Re: pipeartig commands "aggregieren" auf der Shell

Post by mr_neutron »

Ja, mit einer subshell:

Code: Select all

$ ( befehl_1 ; befehl_2 ; befehl_3 ) | pipe_befehl
mk
Posts: 18
Joined: 2005-09-27 10:44

Re: pipeartig commands "aggregieren" auf der Shell

Post by mk »

ahhh,
hätte ich nicht das ungute Gefühl, das es hierbei um basics handelt
und ich mit mit einem lauten 'wohoo' und drei Ausrufezeichen zu Affen machen würde,
würde ich jetzt wohoo!!! rufen!

Danke :)