Interactions avec les "echo" sur terminal UNIX+JAVA

Interactions avec les "echo" sur terminal UNIX+JAVA - Shell/Batch - Programmation

Marsh Posté le 04-05-2006 à 14:12:00    

bonjour à tous.
Voila ma p'tite question :
Je travaille dans un environnement UNIX, et je lance des scripts à partir de methodes JAVA ( getRuntime.exec("scriptshell.sh" ); ). Sauf que quand on lance un script.sh, si on s'applique à en faire un assez facil à utiliser, on se debrouille touojours pour mettre des echo "demarage du script", des echo "Erreur" à quelques ligne, pour la comprehension ou pour savoir dans quel boucle on entre etc...Ces lignes s'affichent donc sur l'écran du terminal. Le probleme, c'est que quand on execute un script avec Java, c'est lignes sont transparentes... je veux dire par là qu'elle ne s'affichent pas. Si une erreur survient, on a pas le message fourni par echo...
et bien ce que je voudrais, c'est justement récupérer ces lignes qui apparaissent en sortie écran de termial, pour les afficher dans un autre environnement (dans une page HTML en l'occurence ici...).
Comment récupérer les echo lancer dans un script ?
La récupération du exit.value() ne fonctionne pas, pour ceux qui allaient me dire cette solution qui consiste à renvoyer un code en sortie (un int)lorsqu'une erreur se produit.
Merci d'avance
Flavio

Reply

Marsh Posté le 04-05-2006 à 14:12:00   

Reply

Marsh Posté le 04-05-2006 à 16:23:31    

Tu rediriges tes echos vers un fichier texte voire meme directement dans une page web,
avec les operateurs de redirection > et >>  
 

Code :
  1. Echo "TOTO" >> File.txt

Reply

Marsh Posté le 04-05-2006 à 18:39:36    

Merci pour ce conseil... c'est ce que j'avais commencé à faire (redirigé dans un .txt, puis lire ce fichier avec class JAVA en vu d'un affichage...) ce matin ... avant de poser la question :)  
Le truc, c'est que c'est possible sur les quelques script que j'écris... mais il y en a auquel je n'est pas acces, et que j'ai encor moins le droit de modifier (Je suis qu'en stage apres tout :( ). C'est pour ca que je souhaitais récupérer les stdout d'un terminal.
Voila, merci quand meme de ton soutien PepMat :)
Si tu as une autre idée... je suis prenneur !

Reply

Marsh Posté le 04-05-2006 à 23:30:55    

up

Reply

Marsh Posté le 04-05-2006 à 23:45:28    

Salut,
 
getRuntime().exec te renvoit un objet Process qui a des methodes getInput|Output|ErrorStream()

Reply

Marsh Posté le 05-05-2006 à 09:32:46    

flavio_dev a écrit :

Merci pour ce conseil... c'est ce que j'avais commencé à faire (redirigé dans un .txt, puis lire ce fichier avec class JAVA en vu d'un affichage...) ce matin ... avant de poser la question :)  
Le truc, c'est que c'est possible sur les quelques script que j'écris... mais il y en a auquel je n'est pas acces, et que j'ai encor moins le droit de modifier (Je suis qu'en stage apres tout :( ). C'est pour ca que je souhaitais récupérer les stdout d'un terminal.
Voila, merci quand meme de ton soutien PepMat :)
Si tu as une autre idée... je suis prenneur !


 
Bon méthode de bourrin, mais bon, si ça peut servir :
 
Tu n'as pas le droit de modifier les batchs que tu lances ?
 
La solution :
 
Créer dynamiquement un fichier batch temporaire à partir de ton script de départ  
en rajoutant des redirections vers un fichiers quand tu detectes un echo.
Puis lancer ce batch nouvellement créé à partir de l'ancien.
 
Structure :
Tu as ton script que tu veux lancer : scriptshell.sh
à partir de ton code java tu crées dynamiquement (à l'interieur de ton programme) un autre fichier scriptshell2.sh
auquel tu rajoutes ">> Log.txt" à toutes les lignes ou tu détectes "Echo"  
Puis après l'avoir créé, tu le lances (le nouveau : scriptshell2.sh).

Reply

Marsh Posté le 08-05-2006 à 14:45:35    

chicotruss a écrit :

Salut,
 
getRuntime().exec te renvoit un objet Process qui a des methodes getInput|Output|ErrorStream()


 
Oui ca j'ai essayé, ca marche... c'est galere, mais ca marche... je metterai le bout de code si cela interrese quelqu'un.
Malheureusement, ca ne convient pas à mon projet... difficile à expliquer pourquoi, je suis dans une architecture très complexe... mais ca ne marche pas... je vais peutetre essayer la solution de PepMat!

Reply

Marsh Posté le 08-05-2006 à 14:46:20    

je vous tiens au courant !

Reply

Marsh Posté le 09-05-2006 à 15:58:10    

Et tout simplement getRuntime.exec("scriptshell.sh>File.txt" ) ?


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 10-05-2006 à 21:12:22    

heu.... pas bête... j'essayerais, mais c'est vrai que ce serait une solution des plus simple... J'ai plus ou moins résolu mon probleme en fait (comme dit ci dessus...). Je n'ai pas pris le code.. je vous l'affiche dès que....j'y pense... ^^. Mon probleme se trouve autre part maintenant... c'est du coté client, avec ma page html (architecture entre page HTML et applet en Java...). Je vous met le lien.  
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
 Merci à tous!
Flavio

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed