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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Interactions script bash et application en ligne de commande

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interactions script bash et application en ligne de commande

n°2261981
holy-calam​ity
Posté le 07-07-2015 à 04:51:59  profilanswer
 

Bonjour à tous :)
 
Je suis actuellement sur un projet et j'aurai besoin de votre aide car je ne sais pas si ce que je veux faire est possible ou non.
Je vous explique:
Dans mon projet que je réalise en Java, je dois appeler différents programmes. Mon application tournera sur une machine Windows mais les programmes que je souhaite appeler sont des programmes Linux. Ainsi, j'ai installé Cygwin sur ma machine et tout fonctionne très bien.
Mon souhait est de réaliser dans un premier temps un script Batch qui est appelé depuis mon programme Java. Ce script n'a pour but que d'ouvrir Cygwin et de lancer le second script, un script Bash cette fois ci.
En gros dans le script Batch il y a le code suivant:

Code :
  1. c:\cygwin\bin\bash.exe -l c:/chemin/vers/script/bash.sh


J'ai testé et ça fonctionne niquel, ça me lance bien Cygwin accompagné par le script bash de mon choix.
 
Dans mon script bash, je demande l'ouverture du logiciel de mon choix:

Code :
  1. ./application


 
Cette application est une application qui fonctionne en ligne de commande. Pour interagir avec elle je dois lui taper des commandes du style:

Code :
  1. (voice.list)
  2. (SayText "Salut la compagnie" )
  3. (exit)


 
Le problème c'est que je ne sais absolument pas comment faire dans mon script bash pour dire que je veux écrire des lignes de commandes une fois que le logiciel est ouvert.. Ce qui se passe dans mon script c'est que ça ouvre le logiciel de mon choix puis plus rien. Par contre dès que je ferme cette application, hop les commandes s'exécutent.
 
Je ne sais pas du tout si je suis clair, mais j'espère que quelqu'un comprendra mon soucis et parviendra à m'aider.
 
P.S: J'espère aussi que je me fais bien comprendre, pour moi un Batch est un script *.bat sous Windows tandis qu'un Bash est un *.sh sous Linux.
 
Merci à vous

mood
Publicité
Posté le 07-07-2015 à 04:51:59  profilanswer
 

n°2262169
Profil sup​primé
Posté le 08-07-2015 à 21:59:17  answer
 

salut,
 
ça dépend des capacités de l'application.
tu peux essayer avec un pipe :

Code :
  1. echo "tes_commandes" | ./application


ou avec un document en ligne :

Code :
  1. ./application <<eof
  2. tes_commandes
  3. eof

'faut voir la doc; peut-être est-il possible d'utiliser un fichier qui serait passé en argument (via une option) au programme.

n°2262175
holy-calam​ity
Posté le 09-07-2015 à 00:30:15  profilanswer
 

Habile  [:gingerspirit:3]  
 
J'ai regardé tout à l'heure et effectivement il existe une option --script <chemin_vers_le_script> pour lancer mon programme.
Par contre aucune indication sur le langage à utiliser pour le script, j'ai essayé bash (histoire de pouvoir récupérer les arguments placés dans la commande lors de l'appel) mais ça ne fonctionne pas...
 
Au pire je le ferai dans mon programme Java en écrivant dans un fichier si je n'arrive pas à savoir comment récupérer les arguments, mais c'est vraiment pas top.
 
EDIT: Voilà ce qui est écrit dans la documentation:

Spoiler :

--script scriptfile
Run scriptfile as a Festival script file. This is similar to to --batch but it encapsulates the command line arguments into the Scheme variables argv and argc, so that Festival scripts may process their command line arguments just like any other program.


 
Du coup les arguments semblent accessibles via argv...


Message édité par holy-calamity le 09-07-2015 à 00:34:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Interactions script bash et application en ligne de commande

 

Sujets relatifs
script suppression clé de registreLigne d'affichage étrange ('set', 'anonymizeIp', true);
Réduction scriptAide pour script
cliquer sur un lien pour lancer un scriptscript qui scane un reseau
execution script en local[DEBUTANT] premier script .sh
variable dans une condition bashScript Wheel mouse, éviter les erreur de scroll
Plus de sujets relatifs à : Interactions script bash et application en ligne de commande


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR