[Unix-shell bourne] recuperer un argument
Résolu
leeloo_aya
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
leeloo_aya Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
leeloo_aya Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je debute en unix et je dois créer un programme en shell de bourne.
le contexte du sujet n est pas ttres compliqué : j ai un fichier de salle de tp et je dois reserver une de ces salles suivant le tp a faire
fichier salle : nomSalle;nbreOrdi;logiciel1/logiciel2/..
ex: 201;22;Eclipse
202;15;SSH/Eclipse
.. 203;14;SSH
fichier reservations : id;classe;salle;nbEleve;date;heure;typeTP
ex : 1;L3;201;14;09/08/2010;8;Java
2;M1;202;12;09/08/2010;10;Unix
...
Je bloque pour deux choses :
- j'aimerai proposé les salles disponibles suivant le type de tp que l on va faire
par exemple si c est un tp unix, la salle 202 vu qu'il y a SSH sur les postes, la salle 201 ou 202 pour Java vu qu'il y a Eclipse sur les postes
Je n'arrive pas à recuperer la salle qui a le bon logiciel qui correspond au tp
- j'aimerai recuperer l'id des reservations pour creer une nouvelle reservation
j'ai essayer avec la commande awk de recuperer le premier argument de la derniere ligne + 1 et ca marche
mais comment mettre le resultat de la commande dans une variable?
je n arrive pas a réutiliser le resultat (3 par rapport a l exemple) de ma commande pour l'ecrire dans le fichier reservation
echo "$id;$classe;$salle;$ndEleve;$date;$heure;typeTP" >> reservations
Merci d'avance pour votre aide
Je debute en unix et je dois créer un programme en shell de bourne.
le contexte du sujet n est pas ttres compliqué : j ai un fichier de salle de tp et je dois reserver une de ces salles suivant le tp a faire
fichier salle : nomSalle;nbreOrdi;logiciel1/logiciel2/..
ex: 201;22;Eclipse
202;15;SSH/Eclipse
.. 203;14;SSH
fichier reservations : id;classe;salle;nbEleve;date;heure;typeTP
ex : 1;L3;201;14;09/08/2010;8;Java
2;M1;202;12;09/08/2010;10;Unix
...
Je bloque pour deux choses :
- j'aimerai proposé les salles disponibles suivant le type de tp que l on va faire
par exemple si c est un tp unix, la salle 202 vu qu'il y a SSH sur les postes, la salle 201 ou 202 pour Java vu qu'il y a Eclipse sur les postes
Je n'arrive pas à recuperer la salle qui a le bon logiciel qui correspond au tp
- j'aimerai recuperer l'id des reservations pour creer une nouvelle reservation
j'ai essayer avec la commande awk de recuperer le premier argument de la derniere ligne + 1 et ca marche
awk -F ";" '{ligne= $0} END {print $1+1}' reservations
mais comment mettre le resultat de la commande dans une variable?
je n arrive pas a réutiliser le resultat (3 par rapport a l exemple) de ma commande pour l'ecrire dans le fichier reservation
echo "$id;$classe;$salle;$ndEleve;$date;$heure;typeTP" >> reservations
Merci d'avance pour votre aide
A voir également:
- [Unix-shell bourne] recuperer un argument
- Classic shell - Télécharger - Personnalisation
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
2 réponses
salut.
Déjà, un lien utile :
https://www.eila.univ-paris-diderot.fr/enseignement/lea/cours/informatique/linux/filters-1
où il y a plein d'outils décris qui pourront être utiles.
Ton message est un peu confus, il y a beaucoup de questions.
pour mettre un résultat de commande dans une variable, il faut encapsuler la commande, soit entre $( et ) soit entre ' (AltGr+7). Par exemple :
resu=$(ls -d f*);
quelque part, il faudrait que tu fasses un fichier de correspondance entre type ed TP et logiciel.
un lien utile, pour lire un fichier ligne par ligne :
https://forums.commentcamarche.net/forum/affich-37620017-comment-lire-un-fichier-ligne-par-ligne
Par exemple, pour ton premier tiret, si tu as mis le type de TP dans la variable "TP" :
te sortira une liste des numéros de ligne de salle qui contiennent SSH. Ensuite, tu peux faire ton traitement à partir de ça.
Déjà, un lien utile :
https://www.eila.univ-paris-diderot.fr/enseignement/lea/cours/informatique/linux/filters-1
où il y a plein d'outils décris qui pourront être utiles.
Ton message est un peu confus, il y a beaucoup de questions.
pour mettre un résultat de commande dans une variable, il faut encapsuler la commande, soit entre $( et ) soit entre ' (AltGr+7). Par exemple :
resu=$(ls -d f*);
quelque part, il faudrait que tu fasses un fichier de correspondance entre type ed TP et logiciel.
un lien utile, pour lire un fichier ligne par ligne :
https://forums.commentcamarche.net/forum/affich-37620017-comment-lire-un-fichier-ligne-par-ligne
Par exemple, pour ton premier tiret, si tu as mis le type de TP dans la variable "TP" :
if [ TP == "Unix"] then cut -d ";" -f 3 salle | grep SSH -n |cut -f 1 -d ":" fi
te sortira une liste des numéros de ligne de salle qui contiennent SSH. Ensuite, tu peux faire ton traitement à partir de ça.
Merci
j'ai reussi à mettre mon id dans la variable et pouvoir comme ca enregistrer une nouvelle reservation en ecrivant dans le fichier le bon id
et j arrive aussi a recuperer les salles dans lesquels on peut faire un tp
je vais essayer d ajouter une meilleure presentation des resultats (ecrire la ligne en texte pour la rendre plus comprehensible)
merci beaucoup en tout cas :) ca me simplifie beaucoup de choses de pouvoir mettre le resultat des commandes dans une variable
j'ai reussi à mettre mon id dans la variable et pouvoir comme ca enregistrer une nouvelle reservation en ecrivant dans le fichier le bon id
et j arrive aussi a recuperer les salles dans lesquels on peut faire un tp
je vais essayer d ajouter une meilleure presentation des resultats (ecrire la ligne en texte pour la rendre plus comprehensible)
merci beaucoup en tout cas :) ca me simplifie beaucoup de choses de pouvoir mettre le resultat des commandes dans une variable