Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2954 connectés 

 


Dernière réponse
Sujet : comment faire en bash script .... [ou perl]
bobuse cherches sur des noms de fonctions comme sys() exec() ... je dis un peu au pif, mais si ça peut t'aider ...
 
En python : http://docs.python.org/lib/module-popen2.html

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
bobuse cherches sur des noms de fonctions comme sys() exec() ... je dis un peu au pif, mais si ça peut t'aider ...
 
En python : http://docs.python.org/lib/module-popen2.html
matafan En perl y'au un module pour les pipes bidirectionels (j'ai lu en travers mais il me semble que c'est ce qu'il te faut).
Kytrix et en perl ? :)
 
ou je peux trouver de l'aide pour "gerer" une application console a partir d'un programme en c ?  
une idée des mots clés a chercher ? :)
francoisp

Kytrix a écrit :

avec le programme que j'utilise ! ne fonctionne pas, il essaye d'interpreter aussi :/
 
si je redirige toute les sorties vers un fichier ex:
monprog >log.txt <<FIN
(1)
commande1
(2)
commande2
(3)
FIN
 
alors il faudrai que je puisse lire le fichier en (1)puis en (2)et en (3) , donc que mes commandes de lecture ne soient pas redirigées vers mon programme :/
 
 
:cry:


 
 
la syntaxe n'est pas forcement "!"
 
ensuite si la possibilité n'existe pas utilise le "tantque"...
 
si ça echoue aussi  
passe par le C ou python mais ça va etre lourd...
 
enfin assures toi aussi que c'est pas le fonctionnement normal de ton appli de lancer ses commandes internes à la volée... au cas où....
 
on sait jamais avec les applis prorio...

francoisp

bobuse a écrit :

heu le coup du ! pour interpréter du shell, c'est pas forcément un standard :o
 
essaye plutôt du côté de python (ou C) pour pouvoir gérer plus finement le flux du process que tu lances ...


 
j'ai jamais dit !=standard mais  
interpreter du shell dans des applis oui forcement que la syntaxe varie d'une applie à une autre !ne me fait pas dire ce que je ne dis pas !

Kytrix je disais sous windows car l'utlisateur final est sous windows :) et donc si j'avai une petite classe qui gere le ssh, je pourais gérer facilement les entrées sorties avec le shell (mais bon c'est pas le pb ici)
 
pour l'instant je vais me concentrer sur un script qui va me permettre de passer les commandes :/
bobuse pkoi sous windows ?
en python ou perl sous linux, tu lances ton prog dans un process, et tu fait ce que tu veux des entrées-sorties :)
Kytrix c'est quoi expect ?
 
sinon je voudrai bien essayer en perl, mais j'ai aucune idée de comment orienté mes recherches :/
j'ai essayé comme avec le bash de chercher des scripts ftp, mais en perl ils utilisent une librairie spécifique .. et non le programme ftp+envoi des commmandes :S
 
sinon l'autre solution c'est de créer un programme (sous windows) qui se conecte en ssh et qui envoi et reçoit les commandes :S
gauret expect est ton ami.
Kytrix ok merci, je vais essayer de ce coté ...
bobuse heu le coup du ! pour interpréter du shell, c'est pas forcément un standard :o
 
essaye plutôt du côté de python (ou C) pour pouvoir gérer plus finement le flux du process que tu lances ...
Kytrix avec le programme que j'utilise ! ne fonctionne pas, il essaye d'interpreter aussi :/
 
si je redirige toute les sorties vers un fichier ex:
monprog >log.txt <<FIN
(1)
commande1
(2)
commande2
(3)
FIN
 
alors il faudrai que je puisse lire le fichier en (1)puis en (2)et en (3) , donc que mes commandes de lecture ne soient pas redirigées vers mon programme :/
 
 
:cry:
francoisp non même en FTP par exemple
la commande ! permet de lancer du shell
 
et tu peux lancer aussi autre solution :
commande 1 << fsdfsdfs
.....
fsdfsdfs
test
commande 2 << dsfsdfsdfs
....
dsfsdfsdfs
 
ou encore plus simple tu fais
 
tant que fichier err existe pas
programme << FIN 2> err
....
FIN
done
 
si une erreur se produit  
le fichier err est crée et le programe killé par l'arret de la boucle tant que...
 
suffit de savoir si ton application genere des retours d'erreur recuperables 2> ou pour la solution d'appel au shell (! en ftp) si elle est prevue....
 
si avec ces trois solutions tu en trouves pas une qui marche avec ton application tu peux la jetter c'est qu'elle ne respecte aucun standard unix .....donc poubelle.
Kytrix oui me le problème (corrige moi si je me trompe)
c'est qu'entre 'monprog <<END_SCRIPT' et 'END_SCRIPT'
toutes les commandes sont envoyée au programme !!
si je voulais faire :
monprog <<FIN
commande1
if mon test
commande2
FIN
 
j'aurais mon prog qui me renverrai : 'if' command not foud !
 
:S
if faudrai que je puisse :
-récupérer ce que 'monprog' renvoi a l'écran
-effectuer un test sans qu'il soit 'envoyé' a monprog
 
tu vois ce que je veux dire ? :S
francoisp Commande 1
test du resultat
si resultat ok alors
Commande 2
fin si
 
voilà tout simplement..
 
j'ai déja eut ce genre de problème aussi et c'est le seul moyen de faire si l'application proprio libere la suite d'elle même
Kytrix Bonjour,
 
    Désolé pour ce titre peu explicite, mais je ne sais pas trop comment définir mon problème :
 
Je veux faire un script qui lance un programme (lequel est un genre de shell ou telnet...) et ensuite passer des commandes à ce programme.
 
c'est comparable à un script qui se conecte en ftp pour récupérer un fichier :
 
#!/bin/sh
HOST='monsiteftp'
USER='public'
PASSWD='public'
ftp -nv $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd rep
get fichier.txt
quit
END_SCRIPT
 
dans mon cas il s'agit un programme propriétaire qui n'a rien a voir avec ftp.
une fois que j'ai lancé ce programme, je veux effectuer 2 commandes,  
en général la première commande passe, mais la 2emme est envoyée alors que le programme n'a pas répondu à la première commande ! et donc la 2emme commande ne passe pas :/
 
dans l'exemple du ftp cela reviendrai a vouloir faire :  
get fichier.txt
get fichier2.txt  
et que le 'get fichier2.txt' soit envoyé alors que le 'get fichier.txt' n'ai pas fini.
 
le pb c'est que dans le cas du ftp tout fonctionne bien, et dans le cas du programme non :/
 
 
je suis perdu et je ne vois pas comment m'en sortir.
 
merci.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)