Benutzer auflisten mit dialog

@

@->-

Hallo, ich brauche mal eure Hilfe bei einem für mich verzwickten Problem.

Ich befasse mich seit einigen Stunden gezwungenermaßen mit Shell Scripten :) . Jetzt möchte ich gerne mithilfe von dialog bzw. Xdialog eine Liste der am System vorhandenen Benutzer ausgeben. Der aufbau des dialog/xdialog Aufrufes soll etwa so aussehen:
Code:
Xdialog --menu "Benutzer auswahlen" 15 50 8 \
        User 1 "" \
        User 2 "" \
        User 3 "" 2> /tmp/dialog.sel

Die Benutzer lese ich aus mit:
Code:
sort -t: -k3 -n /etc/passwd | (IFS=: ; while read u p uid rest ; do if [ $uid -gt 500 ] ; then echo "$u" ; fi ; done )
Nun muss ich die Benutzernamen nur noch in das Menü bekommen. Ich habe jetzt schon einige Stunden gebastelt jedoch ohne Erfolg. Im Prinzip muss ich ja nur den Xdialog Befehlt stück für Stück zusammen bauen das er wie oben aussieht. Ich bekomme es aber einfach nicht hin... Hat jemand von euch eine Idee? Hoffe das ich mich einigermaßen verständlich ausgedrückt habe :)

In diesem Sinne
 
Hallo,
Code:
#!/bin/bash
ULIST=""
COUNT=0
IFS=:
while read u p uid rest ; do
  if [ $uid -ge 500 ] ; then
    COUNT=$((COUNT+1))
    ULIST="$ULIST Benutzer$COUNT $u"
  fi
done < <(sort -t: -k3 -n /etc/passwd)
IFS=" "
dialog --menu "Benutzer" 15 50 8 $ULIST

ich nehme an, du scheiterst an der Pipe. Eine Pipe macht eine Subshell auf. Da kannst du nicht einfach mit den elterlichen Variablen weiterarbeiten. Außerdem müsste es -ge und nicht -gt im if-Statement lauten, wenn du uid bei 500 verbleiben soll. Sonst wird der erste "normale" Benutzer ignoriert.


cu
 
Zuletzt bearbeitet:

Ähnliche Themen

WinXP will nicht in die Domäne

Server-Monitoring mit RRDTool

Zurück
Oben