Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[UNIX KSH] Besoin d'aide pour demarrer...

mystralis, le jeudi 26 octobre 2006 à 12:34:42
Bonjour,

Je debute aujourd'hui dans le langage UNIX > KSH mais j'ai beau eplucher le peu d'exemple que je comprends a peu prés sur le net je n'arrive pas a creer un script qui m'allegerait dans mes tâches quotidiennes car taper à la main plusieurs fois par jour une page A4 de ligne de commande commence un peu à m'epuiser surtout qu'il faut aller vite (vive le rendement), et me prend trop de temps.

Je fais donc appel à vous, profesionnel de l'Univers UNIX afin de m'aider ( j'ai bien dit aider par tout faire à ma place, je tiens a garder mon honneur) à me lancer dans cette vaste aventure. Je pense que si quelqu'un pouvait créer la premiere mointié du script je serais plus à meme de comprendre comment cette usine à gaz fonctionne et me chargerais de finir l'autre mointié à l'huile de coude, j'ai pas le choix d'apprendre sur le tas et tres vite si je veux pas faire une depression... Mais je ne vois pas par ou commencer ce script, merci par avance de votre aide si cela motive quelqu'un.

Voilà en partie ce qu'il faut que je lance une fois sur la ligne de commande Unix : (c'est un test pour valider une boucle sur une ligne 2 megabits quand elle est bouclée)

Voilà je dois lancer les lignes une par une et attendre que le resultat soit OK pour continuer

% start pr

ensuite sur la ligne suivante j'ai un nombre X (le n° de ligne) que je dois changer à chaque fois, j'aimerai donc que le script me demande de rentrer un nombre avant de continuer et de placer celui ci dans les lignes suivantes du script à la bonne place.

% d atmif/800 vcc/X.32 nep

j'aimerai aussi que le script me demande une confirmation pour continuer avec la ligne suivante.
si ok ensuite

% del atmif/800 vcc/X.32 nep

si ok ensuite

% add atmif/800 vcc/X.32 test

si ok ensuite

% add atmif/800 vcc/X.33

si ok ensuite

% add atmif/800 vcc/X.33 nep

si ok ensuite

% set atmmpe/1000 ac/X atmconnection atmif/800 vcc/X.33 nep

etc... apres je dois lancer le test selon un choix de durée mais j'aimerai essayer de le faire seul en fonction du debut du script, en bricolant ce que vous m'aurez trouvé, j'espere m'en sortir.

Je suis desolé de soliciter votre aide mais, je n'ai ni le temps, ni l'argent pour une formation integrale en UNIX (et ma société est adepte du : Tu te forme ssur le TAS, un point c'est tout), je n'ai le choix que d'une formation sur le tas avec votre aide pour demarrer.

Merci encore à celui qui sera motivé par mon post pour me sortir de mon probleme.

;o))) Mystralis.
Répondre à mystralis  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 octobre 2006 à 14:13:12
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" :
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_fichier
affichera 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
fi
Si 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...
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mystralis, le jeudi 26 octobre 2006 à 16:36:59
Je te remercie pour ton aide jipicy ;o)))

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))))
Répondre à mystralis

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 octobre 2006 à 18:25:35
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é) :
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 
fi
Bon à 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 ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mystralis, le vendredi 27 octobre 2006 à 13:28:00
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))))
Répondre à mystralis

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 jipicy, le vendredi 27 octobre 2006 à 14:24:55
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...
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
...
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

Résultats pour [UNIX KSH] Besoin d'aide pour demarrer...

Démarrer Ingres : ingstart Voir aussi les Les principaux process de Ingres (Unix & Windows). Démarrage de Ingres Syntaxe de la commande ingstart [-iigcn | -dmfrcp | -dmfacp | -client | -rmcmd | -icesvr | [-iidbms|-iigcc|-iigcb|-iigcd|-iijdbc|-iistar|-oracle|-informix| -mssql|... www.commentcamarche.net/faq/sujet-5593-demarrer-ingres-ingstart
[shell] faire un substring (Résolu) Bonjour, J'ai une chaine de caractères dont je souhaite garder uniquement les 4 premiers caractères. Comment faire cela en shell UNIX (ksh) ? Merci de votre aide www.commentcamarche.net/forum/affich-1650672-shell-faire-un-substring
[sh] Numéro de la ligne en cours d'exécution (Résolu) Bonjour, Je travaille avec des batchs Unix [ksh, sh]. Je voudrais récupérer le numéro de la ligne en cours d'exécution afin de pourvoir l'imprimer sur la sortie standard. Comme en C++, avec la commande __LINE__. Merci par avance pour vos... www.commentcamarche.net/forum/affich-5207829-sh-numero-de-la-ligne-en-cours-d-execution

Résultats pour [UNIX KSH] Besoin d'aide pour demarrer...

[Moniteur] "NO SIGNAL" est affiché sur l'écranLorsque vous allumez votre PC et votre moniteur (écran), celui-ci affiche NO SIGNAL (ou en français Aucun signal) ou bien l'écran reste désespérément noir. Hypothèses Le cable qui relie le moniteur et l'unité centrale est peut-être mal branché... www.commentcamarche.net/faq/sujet-1700-moniteur-no-signal-est-affiche-sur-l-ecran
[Shell] Accès aux dernières commandes de l'historiqueLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flêches de navigation en appuyant sur la flêche du haut. Mais il y a moyen... www.commentcamarche.net/faq/sujet-971-shell-acces-aux-dernieres-commandes-de-l-historique
[Sécurité] Désactiver le “mouchard” de XPComme dans Windows 98, Microsoft a introduit dans XP un petit mouchard : il s'agit en réalité d'un identifiant unique (GUID), dont il est difficile de savoir l'usage. Pour le désactiver, rien de plus simple : menu démarrer, exécuter, tapez la... www.commentcamarche.net/faq/sujet-115-securite-desactiver-le-mouchard-de-xp

Résultats pour [UNIX KSH] Besoin d'aide pour demarrer...

Ecran noir (Résolu)Bonjour, je ss nouvelle sur ce forum et g un gros probleme avec mon pc c un montage que j'ai realiser pour la premiere fois g brancher tout les connectiques correctement l'uniter centrale demarre normalement mais l ecran reste en veille... www.commentcamarche.net/forum/affich-4672220-ecran-noir
Ecran qui ne fonctionne plus... (Résolu)Bonjour, Voila, mon ecran d'ordinateur a lachée ce matin, il ne veut plus s'allumer, mais l'uniter central demare quand meme. L'ecran fait aussi un bruit en continue (genre de tic tic tic tic tic tic tic). J'ai essayé de... www.commentcamarche.net/forum/affich-6237906-ecran-qui-ne-fonctionne-plus
[Unix Ksh] Cree question dans un script (Résolu)Bonjour J'aurais voulu inclure une question dans un script , la réponse devra ètre soit Y soit N et non pas yes ou Non ou Yes ou yeS ou NoN , comment procéder ? j'ai fais un peu de recherche qui mon un peu aider, mais le résultat reste... www.commentcamarche.net/forum/affich-3420844-unix-ksh-cree-question-dans-un-script

Résultats pour [UNIX KSH] Besoin d'aide pour demarrer...

Télécharger X-ecutor Xecutor est un programme permettant de spécifier l'heure de démarrage d'une application. Spécifiez différentes conditions pour le lancement d'un programme, tous les jours à telle heure ou uniquement un jour de la semaine. Le choix est vaste. Vous... www.commentcamarche.net/telecharger/telecharger-34055880-x-ecutor
Télécharger PalMailL'utilisation de Outlook Express ou MS Outlook est certes pratique, mais parfois assez lourd au démarrage. Si vous utilisez ces applications uniquement pour la réception et l'envoi de mail, vaut mieux choisir autre chose. PalMail est un client mail... www.commentcamarche.net/telecharger/telecharger-34056533-palmail

Résultats pour [UNIX KSH] Besoin d'aide pour demarrer...

Le chiffre du jour : 609.000 exemplaires de "GTA IV" écoulés au Royaume-Uni le 29 avril(Paris - Relax news) - Grand Theft Auto IV (GTA IV) a réalisé le meilleur démarrage de l'histoire vidéoludique au Royaume-Uni avec 609.000 exemplaires vendus le jour de sa sortie jeudi 29 avril. Le précédent record était détenu par GTA : San Andreas... www.commentcamarche.net/actualites/le-chiffre-du-jour-609-000-exemplaires-de-gta-iv-ecoules-au-royaume-uni-le-29-avril-5846595-actualite.php3
L'iPhone face à ses 5 "killers"(Paris - Relax news) - l'iphone débarque enfin en europe. plus de quatre mois après son lancement aux etats-unis, où il s'est déjà vendu à 1,4 million d'exemplaires, l'appareil le plus attendu de l'année démarre sa carrière vendredi en allemagne et au... www.commentcamarche.net/actualites/l-iphone-face-a-ses-5-killers-3999837-actualite.php3
Le chiffre du jour : 10,5 millions de PS3 écoulées dans le monde(Paris - Relax news) - Depuis sa sortie à la fin de l'année 2006 au Japon et aux Etats-Unis, la dernière console de Sony a dépassé la barre des 10 millions d'exemplaires vendus à travers le monde. Après un démarrage difficile, la PlayStation 3 a... www.commentcamarche.net/actualites/le-chiffre-du-jour-10-5-millions-de-ps3-ecoulees-dans-le-monde-5104771-actualite.php3