#!/bin/sh # \ exec tclsh8.5 $0 $@ # Erzeugt ein Dictionary mit den Daten aus /etc/passwd proc createDict {} { set fd [open /etc/passwd] while {[gets $fd line] > 0} { set eintrag [split $line :] dict set retval [lindex $eintrag 0] uid [lindex $eintrag 2] dict set retval [lindex $eintrag 0] name [lindex $eintrag 4] dict set retval [lindex $eintrag 0] home [lindex $eintrag 5] dict set retval [lindex $eintrag 0] shell [lindex $eintrag 6] } return $retval } set nutzerdaten [createDict] puts "Es gibt [dict size $nutzerdaten] Benutzer" # Direkter Zugriff puts "nur Name [dict get $nutzerdaten cz name]" # Alle Informationen puts "alle Daten «[dict get $nutzerdaten cz]»" # Benutzer filtern: Nur A bis D set ad [dict filter $nutzerdaten key {[a-d]*}] puts "Es gibt [dict size $ad] Benutzer, die mit a - d anfangen" # Benutzer ausgeben, dazu Schleife über alle Schlüssel dict for {nutzer daten} $ad { puts -nonewline "Benutzer $nutzer" # Subeinträge als lokale Variable dict with daten { puts "\t, Name «$name», Heimatverzeichnis $home" } }