[UNIX KSH] Besoin d'aide pour demarrer...
Fermé
mystralis
Messages postés
3
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
27 octobre 2006
-
26 oct. 2006 à 12:34
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 27 oct. 2006 à 14:24
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 27 oct. 2006 à 14:24
A voir également:
- [UNIX KSH] Besoin d'aide pour demarrer...
- Démarrer en mode sans echec - Guide
- Pc long a demarrer - Guide
- Windows 11 menu démarrer classique - Guide
- Réinitialiser menu démarrer windows 10 - Guide
- Demarrer pc a distance - Guide
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
26 oct. 2006 à 14:13
26 oct. 2006 à 14:13
Salut,
Je vois dans les grandes lignes ce que tu veux faire, mais pour t'aider j'aurai besoin d'exemples concrets, autrement dit un bout de ton fichier à traiter et les résultats que tu veux obtenir.
Sans ça on risque de partir sur de mauvaises bases et patauger dans la semoule ;-))
Sinon en gros :
Pour récupérer une variable entrée au clavier il faut utiliser la commande "read" :
Ensuite pour ton histoire de confirmation, un petit test avec "if ... then" devrait faire l'affaire :
Bon, tout ça c'est à prendre juste pour les bases, je ne suis pas devant mon PC avec un environnement GNU/Linux et de ce fait je ne peux pas tester l'exactitude de mes bouts de scripts...
Donc dès que je rentre je pourrai te confirmer le tout et me pencher davantage sur ton cas, si toutefois tu me fournis plus de détails...
Je vois dans les grandes lignes ce que tu veux faire, mais pour t'aider j'aurai besoin d'exemples concrets, autrement dit un bout de ton fichier à traiter et les résultats que tu veux obtenir.
Sans ça on risque de partir sur de mauvaises bases et patauger dans la semoule ;-))
Sinon en gros :
Pour récupérer une variable entrée au clavier il faut utiliser la commande "read" :
echo -e "Entrer un nombre :\n" read nombre echo echo "Vous avez entré le nombre $nombre."Pour afficher une ligne d'un fichier les solutions ne manquent pas, entre autre tu peux utiliser "sed" :
sed -n 3p le_fichieraffichera la 3ème ligne du fichier "le_fichier".
Ensuite pour ton histoire de confirmation, un petit test avec "if ... then" devrait faire l'affaire :
echo -e "Le résultat est-il bon ? [O/N] \n" read result if [ "$result" = "N" ] then exit fiSi tu tapes "N" alors le script s'arrête...
Bon, tout ça c'est à prendre juste pour les bases, je ne suis pas devant mon PC avec un environnement GNU/Linux et de ce fait je ne peux pas tester l'exactitude de mes bouts de scripts...
Donc dès que je rentre je pourrai te confirmer le tout et me pencher davantage sur ton cas, si toutefois tu me fournis plus de détails...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
26 oct. 2006 à 18:25
26 oct. 2006 à 18:25
Re-
Bon j'ai pas tout compris, en grande partie parce que je ne sais toujours pas si tu dois lire des données en dehors de ton script ou si ces données sont dans le script lui même (je pencherai plus pour cette proposition).
Enfin, pour reprendre ton ébauche (en gras ce que j'ai rajouté ou corrigé) :
Bon j'ai pas tout compris, en grande partie parce que je ne sais toujours pas si tu dois lire des données en dehors de ton script ou si ces données sont dans le script lui même (je pencherai plus pour cette proposition).
Enfin, pour reprendre ton ébauche (en gras ce que j'ai rajouté ou corrigé) :
echo -e "Bonjour, voulez vous lancer le test de paquet de ligne 3G ? [O/N] \n" read result if [ "$result" = "O" ] then start pr fi echo -e "Voulez vous continuer ? [O/N] \n" read poursuivre if [ "$poursuivre" = "O" ] Then echo -e "Veuillez rentrer le VCC de la ligne à tester ? \n" read VCC (à ce niveau j’aimerai que le nombre rentré (ex:185) soit injecté directement dans les lignes de commandes qui suivent jusqu’a la fin du script) d atmif/800 vcc/"$VCC".32 nep fi echo -e "Voulez vous continuer ? [O/N] \n" read poursuivre if [ "$poursuivre" = "O" ] Then Del atmif/800 vcc/"$VCC".32 nep fiBon à ce stade il manquerait encore des conditions (else) pour clarifier le tout, mais là j'aurai besoin de plus de détails encore et toujours ;-))
mystralis
Messages postés
3
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
27 octobre 2006
27 oct. 2006 à 13:28
27 oct. 2006 à 13:28
Oui effectivement les données que j'ai besoin de recuperer sont dans le sript, je n'ai pas de données à exporter vers un autre fichier, ni de données à archiver ou sauvegarder, j'ai uniquement besoin de lire à l'ecran les resultats que le script execute pas à pas.
quand la ligne d atmif/800 vcc/"$VCC".32 nep est lancée j'ai juste besoin de lire à l'ecran le resultat.
je viens de completer mon ebauche avec tes remarques et mon 6eme sens lol, pour alleger le tout j'ai supprimé la demande de confirmation de continuer ou pas le script pas à pas, je vais tester avec les commandes lancées à la chaine cela devrait etre plus rapide.
echo -e "Bonjour, voulez vous lancer le test de paquet de ligne 3G ? [O/N] \n"
read result
if [ "$result" = "O" ]
then
start pr
fi
echo -e "Veuillez rentrer le VCC de la ligne à tester ? \n" #Nombre entre 0 et 999
read VCC
d atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".32 nep
add atmif/800 vcc/"$VCC".32 test
add atmif/800 vcc/"$VCC".33
add atmif/800 vcc/"$VCC".33 nep
Set atmmpe/1000 ac/"$VCC" atmconnection atmif/800 vcc/"$VCC".33 nep
Ch pr
Act pr
Conf pr
End pr
echo -e "Veuillez rentrer la durée du test ? \n" #Durée entre 1 et 5 minutes
read TIMETEST
Set atmif/800 vcc/"$VCC".32 test duration "$TIMETEST"
Start atmif/800 vcc/"$VCC".32 test
echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
read resultat
if [ "$resultat" = "O" ]
then
d atmif/800 vcc/"$VCC".32 test
(ici j’aimerai revenir à la ligne precedente de choix : echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
car pendant toute la durée du test on peut lancer autant de fois que l’on veut la commande : d atmif/800 vcc/"$VCC".32 test afin d’avoir un apercu des envois et retours de paquet sur le lien 2M/b avant la fin du test)
else
(ici j'aimerai que le script attende la fin de la durée du test pour me demander de continuer car la commande de test : Start atmif/800 vcc/"$VCC".32 test, va me generer directement sur l'ecran plusieurs lignes concernant le resultats des envois de paquets que je n'ai besoin uniquement que de lire)
echo -e "Appuyer sur Q pour quitter le programme \n"
read QUITTER
if [ "$QUITTER" = "Q" ]
then
Start pr
add atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".33
Set atmmpe/1000 ac/"$VCC" atmconnection atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".32 test
Ch pr
Act pr
Conf pr
End pr
Exit
fi
merci pour ton aide, je commence a comprendre des petits bouts de choses et cela devient tres interessant ;o))))
quand la ligne d atmif/800 vcc/"$VCC".32 nep est lancée j'ai juste besoin de lire à l'ecran le resultat.
je viens de completer mon ebauche avec tes remarques et mon 6eme sens lol, pour alleger le tout j'ai supprimé la demande de confirmation de continuer ou pas le script pas à pas, je vais tester avec les commandes lancées à la chaine cela devrait etre plus rapide.
echo -e "Bonjour, voulez vous lancer le test de paquet de ligne 3G ? [O/N] \n"
read result
if [ "$result" = "O" ]
then
start pr
fi
echo -e "Veuillez rentrer le VCC de la ligne à tester ? \n" #Nombre entre 0 et 999
read VCC
d atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".32 nep
add atmif/800 vcc/"$VCC".32 test
add atmif/800 vcc/"$VCC".33
add atmif/800 vcc/"$VCC".33 nep
Set atmmpe/1000 ac/"$VCC" atmconnection atmif/800 vcc/"$VCC".33 nep
Ch pr
Act pr
Conf pr
End pr
echo -e "Veuillez rentrer la durée du test ? \n" #Durée entre 1 et 5 minutes
read TIMETEST
Set atmif/800 vcc/"$VCC".32 test duration "$TIMETEST"
Start atmif/800 vcc/"$VCC".32 test
echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
read resultat
if [ "$resultat" = "O" ]
then
d atmif/800 vcc/"$VCC".32 test
(ici j’aimerai revenir à la ligne precedente de choix : echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
car pendant toute la durée du test on peut lancer autant de fois que l’on veut la commande : d atmif/800 vcc/"$VCC".32 test afin d’avoir un apercu des envois et retours de paquet sur le lien 2M/b avant la fin du test)
else
(ici j'aimerai que le script attende la fin de la durée du test pour me demander de continuer car la commande de test : Start atmif/800 vcc/"$VCC".32 test, va me generer directement sur l'ecran plusieurs lignes concernant le resultats des envois de paquets que je n'ai besoin uniquement que de lire)
echo -e "Appuyer sur Q pour quitter le programme \n"
read QUITTER
if [ "$QUITTER" = "Q" ]
then
Start pr
add atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".33
Set atmmpe/1000 ac/"$VCC" atmconnection atmif/800 vcc/"$VCC".32 nep
Del atmif/800 vcc/"$VCC".32 test
Ch pr
Act pr
Conf pr
End pr
Exit
fi
merci pour ton aide, je commence a comprendre des petits bouts de choses et cela devient tres interessant ;o))))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
27 oct. 2006 à 14:24
27 oct. 2006 à 14:24
Re-
(ici j’aimerai revenir à la ligne precedente de choix : echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
car pendant toute la durée du test on peut lancer autant de fois que l’on veut la commande : d atmif/800 vcc/"$VCC".32 test afin d’avoir un apercu des envois et retours de paquet sur le lien 2M/b avant la fin du test)
Les corrections et rajouts sont en gras dans l'exemple qui suit...
else
(ici j'aimerai que le script attende la fin de la durée du test pour me demander de continuer car la commande de test : Start atmif/800 vcc/"$VCC".32 test, va me generer directement sur l'ecran plusieurs lignes concernant le resultats des envois de paquets que je n'ai besoin uniquement que de lire)
Là regarde du côté de la commande "wait" et le lancement de commande en arrière-plan au moyen de l'esperluette ( & ).
pour reprendre l'exemple ci-dessus, sur ta ligne : "d atmif/800 vcc/"$VCC".32 test" rajoute "&" à la fin (d atmif/800 vcc/"$VCC".32 test&) et après l'instruction "done" (à la ligne) rajoute "wait", ce qui donnerait :
(ici j’aimerai revenir à la ligne precedente de choix : echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] \n"
car pendant toute la durée du test on peut lancer autant de fois que l’on veut la commande : d atmif/800 vcc/"$VCC".32 test afin d’avoir un apercu des envois et retours de paquet sur le lien 2M/b avant la fin du test)
Les corrections et rajouts sont en gras dans l'exemple qui suit...
while : do echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] (Q pour quitter)\n" read resultat if [ "$resultat" = "N" ] then continue fi if [ "$resultat" = "Q" ] then break fi d atmif/800 vcc/"$VCC".32 test done
else
(ici j'aimerai que le script attende la fin de la durée du test pour me demander de continuer car la commande de test : Start atmif/800 vcc/"$VCC".32 test, va me generer directement sur l'ecran plusieurs lignes concernant le resultats des envois de paquets que je n'ai besoin uniquement que de lire)
Là regarde du côté de la commande "wait" et le lancement de commande en arrière-plan au moyen de l'esperluette ( & ).
pour reprendre l'exemple ci-dessus, sur ta ligne : "d atmif/800 vcc/"$VCC".32 test" rajoute "&" à la fin (d atmif/800 vcc/"$VCC".32 test&) et après l'instruction "done" (à la ligne) rajoute "wait", ce qui donnerait :
while : do echo -e "Voulez-vous un premier aperçu du test en cours ? [O/N] (Q pour quitter)\n" read resultat if [ "$resultat" = "N" ] then continue fi if [ "$resultat" = "Q" ] then break fi d atmif/800 vcc/"$VCC".32 test& done wait ...;-))
26 oct. 2006 à 16:36
alors quand je lance mes deux premieres lignes j'obtiens :
107>start pr
Prov
The edit view is identical to the current view
OK 2006-10-26 15:44:19:21
(a ce moment precis j'aimerais que le script me demande de rentrer un N° de ligne, ici par exemple 185 et qu'il l'injecte dans les lignes de commandes avant de les lancer)
108>d atmif/800 vcc/185.32 nep
Atmif/800 vcc/185.32 Nep
applicationName=AtmMpe/1000 AC/185
OK 2006-10-26 15:45:08:12
( ensuite si le resultat est OK, j'aimerais que le script me demande une confirmation pour lancer la ligne de commande suivante et ainsi de suite jusqu'a la fin du script)
si le resultat est NOK alors le programme lancerait un avertissement et un choix de continuer ou d'arret du script
En fait dans l'ideal le script commencerais par exemple comme cela :
>Bonjour, voulez vous lancer le test de paquet de ligne 3G ? (Y or N)
(si Y alors le script lancerait la premiere ligne de commande... start pr, si le resultat est OK alors le script demanderait si l'on desire poursuivre par Y or N et si Y lancerait la prochaine ligne de commande et ainsi de suite...)
je ne sais pas si je t'ai eclairé un peu plus mais comme la console sur laquelle je lance mes commandes est deportée de mon poste de travail je ne puis helas pas faire de copier coller ou d'impression d'ecran.
je viens de m'atteler a une petite ebauche du debut (ca doit pas etre terrible) mais ca donne une idée generale... enfin j'espere...
echo -e "Bonjour, voulez vous lancer le test de paquet de ligne 3G ? [O/N] \n"
read result
if [ "$result" = "O" ]
then
start pr
echo -e "Voulez vous continuer ? [O/N] \n"
if [ "$result" = "O" ]
Then
echo -e "Veuillez rentrer le VCC de la ligne à tester ? \n"
read result
(à ce niveau j’aimerai que le nombre rentré (ex:185) soit injecté directement dans les lignes de commandes qui suivent jusqu’a la fin du script)
sed 's/xxx/result/'
d atmif/800 vcc/xxx.32 nep
echo -e "Voulez vous continuer ? [O/N] \n"
if [ "$result" = "O" ]
Then
Del atmif/800 vcc/xxx.32 nep
.
.
.
.
Merci encore ;o))))