Permanente Ausgabe ich eine Variable umleiten

Post Reply
Message
Author
seddist

Permanente Ausgabe ich eine Variable umleiten

#1 Post by seddist »

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: Select all

# 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: Select all

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.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Code: Select all

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..."

Post Reply