Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Was geht mit Pipes, was nicht?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gaiusbonus



Anmeldungsdatum: 11.04.2005
Beiträge: 3

BeitragVerfasst am: 24. Apr 2005 14:10   Titel: Was geht mit Pipes, was nicht?

Hallo,

ich bin Frischling!

Ich versuche in einem Script Verzeichnisse anzulegen, die nach aktuellem Datum mit Zeit benannt sind.

date +%Y gibt mir 2005
warum funzt folgendes nicht:
date +%Y | md
Kann ich per Pipe nur Ausgaben umleiten an Befehle, die Dateien einlesen können?

Danke!

Jochen
 
Benutzer-Profile anzeigen Private Nachricht senden

gaiusbonus



Anmeldungsdatum: 11.04.2005
Beiträge: 3

BeitragVerfasst am: 24. Apr 2005 14:58   Titel:

Die Frage nach dem "was geht" bleibt, mein Problem hab ich grad mit "Rückwärtsdüdeln" gelöst!
md `date +%Y`

Jochen
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 24. Apr 2005 15:16   Titel:

Hi!

Da gibt es leider nur eine ziemlich blöd klingende Antwort: manpage lesen.
Entscheidend ist die Substitution der Shell. Je nachdem wie viel Befehle und
in welcher Reihenfolge diese abgearbeitet werden (sollen), kann es zu unter-
schiedlichen Ergebnissen kommen. -> man bash

Für Fälle wie deinen eignet sich "xargs". Xargs übernimmt die Ausgabe eines
Programmes und liefert sie einem anderen Programm als Argument.
Beispiel:
date +%Y |xargs mkdir

MfG
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Scory



Anmeldungsdatum: 16.04.2004
Beiträge: 188

BeitragVerfasst am: 25. Apr 2005 11:56   Titel:

>Kann ich per Pipe nur Ausgaben umleiten an Befehle, die Dateien einlesen können?

Genau! Das erklärt auch den Begriff "Pipe" (wie "Pipeline"), das ist das Rohr, wo die Daten von einem Prozess zum anderen fließen. Pipes sind also nur für Programme geeignet, die vom sog. "Standard Input" Daten einlesen können. Das Programm "md" ist nicht dazu in der Lage, sondern erwartet ausschließlich auf der Kommandozeile die Parameter.

Programme, die man "pipe-fähig" nennen würde heißen im Fachjargon "Filterprogramm" - sie sind quasi der Datenfilter der Pipes. Typische Filter sind "sort", "grep", "sed" und viele viele mehr. Zwar erwarten alle diese Programme *auch* Kommandozeilenparameter, aber die kann man ja trotzdem angeben, auch wenn der eigentliche Datenstrom "gepiped" wird. Beispiel:

ps -fe | grep -v ps

Das obige Progrämmchen zeigt alle aktuellen Prozesse an, nur nicht die, wo "ps" drin vorkommt - also alle außer sich selbst. Doofes Beispiel, aber ich hoffe trotzdem, der Sinn ist erkennbar.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy