salut, unix assistants,
J'ai une question sur la logique de mon intérieur de la boucle ci-dessous. en premier lieu, ce que j'essaie de faire est d'écrire un script nommé create_account mysql qui crée automatiquement des comptes. l'utilisateur peut fournir une user_name ou un group_id comme un argument (et le script peut prendre plusieurs arguments). user_name arguments devraient tout simplement être ajouté à un user_file.
ids groupe doit être comparé à un fichier qui contient une liste de group_ids avec de multiples user_names par id. si l'identifiant de groupe existe, alors saisir tous les utilisateurs et les joindre à la user_file. si l'identifiant de groupe n'existe pas, print "identifiant de groupe n'est pas valable».
Bien entendu, la première chose que j'ai à faire est de valider la thèse - si c'est un nombre d'un certain type, je suppose que c'est un group_id. d'autre, c'est un user_name. btw, "is_num" est une fonction de valider si l'argument est un nombre (et donc, un group_id).
----------------------------------------------
obtenir arg
- si l'argument est un nombre
- si num group_id est invalide,
- puis l'imprimer "identifiant de groupe n'est pas valable"
- est valable si num group_id
- group_id_file ensuite analyser et saisir les utilisateurs à partir du 4e sur le terrain
----------------------------------------------
mon code fonctionne bien quand je viens d'un argument et il n'est pas question si l'argument est valable group_id, group_id invalide, ou un user_name. mais quand je utiliser plusieurs paramètres, les problèmes avec mon code:
- user_name arguments se sont passés par le centre de la boucle et ne devrait pas être parce qu'ils ne passent pas la is_num fonction de critères
- commandes avec des paramètres multiples exécuter plusieurs fois tous les arguments
- Par exemple, si je dit ...
Code:
create_acct valid_num invalid_num
... i obtenir une liste avec tous les utilisateurs valides 2 fois
Je me demande si quelqu'un a le temps pour moi de point dans la bonne direction. merci pour votre aide.
Code:
for arg; do
if is_num $arg; then
#----------------------------------------------
for num; do
a=$(grep "^c$num:" group_file)
if [ -z "$a" ]; then
print "Group ID " $num "is not in group file."
continue
fi
f4=$(echo $a | cut -d: -f4)
if [ -z "$f4" ]; then
print "Group ID " $num "does not have any users."
else
print $f4 | tr ',' '\n' >> user_list
continue
fi
done
#----------------------------------------------
else
echo $arg >> user_list
fi
done