Wenn die nächste Zeile eine leere Zeile ist hör auf

E

El Kassem

scan my network and die
Sorry erstmal für den komischen Titel.
Aber ne andere Beschreibung fiel mir nicht ein.
Folgendes Problem:
Ich erzeuge aus einem getfacl . ein Datei.
Nun will ich jedem Verzeichnis die Gruppen / User zuweisen die ich brauche.

# file: disk/directory
# owner: root
# group: gruppe
user::rwx
group::---
group:lesegruppe:r-x
group:schreibgruppe:rwx
mask::rwx
other::---

Und von solchen Dingen hab ich natürlich mehr.
Mein Skript sieht nun so aus:
#!/bin/bash
grep "# file" getfacl_all_directory.txt | cut -c 9-100 |
while read pfad
do
setgroup=$(grep "group:" getfacl_all_directory.txt | cut -d: -f2)
setuser=$(grep "user:" getfacl_all_directory.txt | cut -d: -f2)
echo $pfad
echo GROUP!: $setgroup
echo USER!: $setuser
done
exit

Also ich lese mir mal das Verzeichnis raus.. Und dann will ich mir zu dem Verzeichnis deren Gruppe und User raus grepen.
Das Problem ist nun offensichtlich.

Wenn ich jetzt schon ein setacl machen würde, würde ich jede gruppe die irgendwo steht für jedes verzeichnis berechtigen... Was ich natürlich nicht will.

Der einzige Unterschied wo das Skript weiß das es da aufhören muss ist eine Leerzeile bevor das nächste getfacl gezeigt wird.

Das heißt ich bräuchte soetwas wie :
Wenn die nächste Zeile ein Leerzeile ist, mache ein break und fahr mim nächsten Verzeichnis fort um dort die weiteren Berechtigungen zu setzen.

Ich hoffe man weiß was gemeint ist, wenn nicht, nachfragen ;)

Danke schon mal :)
 
Danke für deine Hilfe. Habs aber mittlerweile schon.

Bin nun einen ganz anderen Weg gegangen.

Kann geclosed werden, trotzdem danke :)
 
Schade... jetz habe ich mir die Mühe gemacht....

Ich poste meinen Vorschlag aber trotzdem mal.....
Code:
[FONT="Courier New"]#!/bin/bash

while read akt_zeile ; do
case $akt_zeile  in
        "# file:"*)     #echo "Zeile Verzeichnisname: $akt_zeile "
                        pfad="`echo $akt_zeile  | cut -d: -f2`"
                ;;
        "group:lesegruppe:"*)   #echo "Zeile Lesegruppe $akt_zeile "
                        setlesegruppe="`echo $akt_zeile  | cut -d: -f3`"
                ;;
        "group:schreibgruppe:"*)        #echo "Zeile Schreibgruppe $akt_zeile "
                        setschreibgruppe="`echo $akt_zeile  | cut -d: -f3`"
                ;;
        "user:"*)       #echo "Zeile User $akt_zeile "
                        setuser="`echo $akt_zeile  | cut -d: -f3`"
                ;;
        "")             echo "$pfad"
                        echo "GROUP!: $setlesegruppe"
                        echo "USER!: $setuser"
                        echo "Leerzeile - fange neuen Datensatz an"
                        echo ""
                ;;
        *)              #echo "hier der Rest, der nicht zugeordnet wurde.... '$akt_zeile '"
                ;;
esac

done < getfacl_all_directory.txt[/FONT]
 

Ähnliche Themen

Umlaute und so umbenennen... - ntfs probleme?

Problem mit ACL (Dateizugriffsrechte)

Server-Monitoring mit RRDTool

Zurück
Oben