Shellscript

Hallo,

ich muss für die Schule ein Shellscript schreiben, das folgendes macht…
Das Script soll aus der /etc/passwd die UserID der User heraussuchen.

Gibt man in der Konsole ein:
fuid loginname1 loginname2 loginname3
…Dann soll er nach loginname1, loginname2 und loginname3 suchen.
Wird ein loginname nicht gefunden soll Loginname nicht registriert ausgegeben werden.

Ausgabe soll in etwa so aussehen:

Eingabe:
fuid christof user3 hans miro

Ausgabe:
christof: UID 5
user3: loginname nicht registriert
hans: loginname nicht registriert
miro: UID 1

Gibt jemand Mayer ein soll der Benutzer Mayerhofer aber nicht gefunden werden also wirklich nur die die man eingibt…

mfg
christof

muss das wirklich mit Shell sein? Ich würde da ein C+±Programm vorschlagen :wink:

Ja, bist du denn wahnsinnig? :ps:

Hier das Script:#!/bin/sh for user in $*; do uid=$(awk -F: '$1 == "'$user'" { print $3 }' /etc/passwd) if [ -n "$uid" ]; then echo "$user: UID $uid" else echo "$user: loginname nicht registriert" fi done

Vielen vielen dank!

Genau so kurz sollte es sein…
Kann mir das vl noch jemand erklären was welche Zeile macht?

Uns wurden da nämlich nur ein par Befehle hingeknallt…

Cut –d: -f1,3 | gep „^$1“


If grep „$1“ temp$$
…
….
Shift

D.h. in dem Script sollte es mit den grep Befehl und dem cut Befehl gemacht werden…

mfg
christof

Weis niemand wie das mit grep und cut funktioniert?
Würde das gerne wissen und verstehen.

mfg
christof