Bonjour,
Voici mon probleme:
C'est de la programmation shell sous linux redhat 5 ES.
A la base il y a 2 fichiers param_user et param_carac. Et un script en shell, qui une fois exécuté, collectera des infos du 1er et 2eme fichiers et les mettra en sortie dans un fichier passwd.
# param_user contient les lignes ecrit comme ceci = login:Id:groupe_service (7 groupes services total)
exemple = toto:900:admin , seulement 3 colonnes par lignes
# param_carac contient Id:groupe_archi:groupe_service:etc ...
ou groupe_service:group_archi: etc ...
//il n'y a que 3 groupe architecture A , B et C
// il peut y avoir 6 colonnes max
// autant de ligne que d'utilisateur (50)
exemple = 800:A:admin:etc...
500:B:reseau:etc...
223:A:etude:etc...
900:A:admin:etc...
500:C:admin:etc...
admin:C:etc...
etude:B:etc...
lorsque que j'executerai le script ./script toto group_service
exemple (et seulement de cette maniere ci, avec 2 arguments)
==> ./script toto admin
reprenons maintenant les exemples comme énoncés.
Le programme doit chercher l'Id (donc 900, id de toto) dans le premier fichier param_user et le compare avec les id du 2eme fichier param_carac.
# etape 1 :Si c'est le meme id, on copie la ligne du fichier param_carac où l'Id a été trouvé et on le renvoie dans un fichier nommé passwd
# etape 2 : si il ne le trouve pas le meme id, on compare désormais le groupe_service du user situé dans param_user donc ici admin et effectuer le meme procédé que l'étape 1
Pouvez vous me donner les idées de départ ? pour que je puisse effectuer le programme .
je ne vois pas comment 1) associer toto à l'id, faut il que toto et id soit dans la meme ligne ?
2) étape 1 comparer $1(entrer en paramètre) à une donnée d'un fichier
3) étape 2 comparer $2(entrer en paramètre) apres avoir montrer que étape 1 ne donnait rien
4) probleme se situant au niveau de la comparaison en shell
je vois comment -le renvoyer dans un fichier >> passwd
-choisir une ligne avec colonne grep nom |-d ":" -f1
- effectuer une boucle if
merci de votre aide
Partager