Permanente Ausgabe ich eine Variable umleiten

Antworten
Nachricht
Autor
seddist

Permanente Ausgabe ich eine Variable umleiten

#1 Beitrag von seddist » 05. Dez 2007 23:19

Hallo,

ich spiele gerade ein wenig mit Inotifywait, einem Programm, das Änderungen innerhalb eines Verzeichnisses erkennt und anzeigen kann.
Das Programm läuft also permanent im Hintergrund und schmeißt dann bei jedem Zugriff eine Ausgabe nach stdout. Und diese Ausgabe möche ich abfangen und verarbeiten. Das heißt, immer wenn etwas passiert, soll eine Aktion ausgeführt werden.
Konkret:

Code: Alles auswählen

# inotifywait -m -r -e create --format %w%f /tmp/inotest
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/inotest/test
/tmp/inotest/dirtest
/tmp/inotest/dirtest/test2
/tmp/inotest/dirtest/test3
Jetzt möchte ich gerne zu jeder angelegten Datei einen chgrp ausführen, ich muß also obige Ausgabe irgendwie in eine Variable bekommen, die ich dann chgrp übergeben kann. Das bekomme ich aber nicht hin, da die Ausgabe ja permenent ist, also die Variable immer wieder von neuem gefüllt werden muß.

Hat jemand eine Idee, wie das mit Shellmitteln hinzubekommen ist? Denn:

Code: Alles auswählen

while "DATEI=`inotifywait -m -r -e create --format %w%f /tmp/inotest/`"; do
klappt nicht. Nur weiß ich nicht, wie ich sonst in einer while Schleife die Ausgabe abfangen kann.

Benutzeravatar
jochen
prolinux-forum-admin
Beiträge: 699
Registriert: 14. Jan 2000 15:37
Wohnort: Jülich
Kontaktdaten:

#2 Beitrag von jochen » 06. Dez 2007 9:14

Code: Alles auswählen

inotifywait -m -r -e create --format %w%f /tmp/inotest/ | while read FILE ; do
    chgrp irgendeine_gruppe "$FILE"
    echo "Berechtigung von $FILE verändert"
done
Jochen
Die grösste Lüge der EDV? "Mal eben..."

Antworten