Ich habe noch nie bash verwendet, aber ich versuche, dieses Stück Code zu verstehen. Das Skript soll alle Login-Namen, vollständige Namen und deren Benutzer-IDs anzeigen. Jedoch, wenn ich renne, kann ich nicht über die erste if-Anweisung hinauskommen, und wenn ich die Anweisung lösche, funktioniert es nicht.Bash - nicht genug Argumente
#!/bin/bash
if [ $# -lt 1 ];
then
printf "Not enough arguments - %d\n" $#
exit 0
fi
typeset user=""
typeset name=""
typeset passwdEntry=""
while [ $# -ge 1 ];
do
user=$1
shift
name=""
passwdEntry=`grep -e ^$user /etc/passwd 2>/dev/null`
if [ $? -eq 0 ]; then
name=`echo $passwdEntry|awk -F ':' '{print $5}'`
fi
echo "$user $name"
done
Nun, das Skript will mindestens ein Argument. – Biffen
prüft es die Anzahl der Argumente und wenn es kein Argument gibt, wird es beendet. Wie hast du das Skript ausgeführt? –
Ich weiß nicht, ob es darauf ankommt, aber die erste Halbspalte ';' ist nicht notwendig. Tut es weh? – Djee