Hello Martin, Friday, August 9, 2002, 1:57:53 PM, you wrote:
SMDSC> http://www.mail-archive.com/talk@pug.org/msg05629.html SMDSC> Nun erklär mir doch mal, was das Ding genau macht. Ich habe es nämlich SMDSC> gerade für einen Anwendungsfall adaptiert, wo ich nicht mit awk-Prozessen um SMDSC> mich schmeißen will, aber ich schnalle einfach nicht, was da um die Zeile SMDSC> "set -- $zeile" herum passiert. > #!/bin/sh > > IFS="" Weil z.B. im Kommentar-Feld Sachen auftauchen könnten, die leerzeichen enthalten (ich habe hier z.B. grundsätzlich meinen Namen drin) > while read zeile; do liest zeile für zeile ein (aus /etc/passwd) > IFS=":" Doppelpunkt gilt absofort als Trennzeichen auch auf Shell Ebene, in der passwd-Datei ist dies ja grundsätzlich so. > set -- $zeile Teilt nun $1, $2, $3, ..., $n jeweils das aktuelle Item aus der Datei zu (*!!!* bedenke IFS=':' ) > IFS="" für nächsten Durchlauf > echo "User: $1" > echo "UID: $2" mhm, müste eigentlich $3 sein ... mhm > echo "GID: $3" mhm, müste eigentlich $4 sein ... mhm > echo "Gecos: $4" mhm, müste eigentlich $5 sein ... mhm > echo "Home: $5" mhm, müste eigentlich $6 sein ... mhm > echo "Shell: $5" mhm, müste eigentlich $7 sein ... mhm > echo "Length: ${#zeile}" Paramater Substitution, gibt Länge der Variable `zeile' zurück. > done < /etc/passwd -- cheers, Tobias ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org