Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/06/2014, à 23:06

Ciloe

[Résolu] Ecouter un read en ligne de commande

Bonjour, je réalise un script bash pour automatiser des commande. Je travail avec Symfony, et pour générer des données dans la base j'utilise la commande suivante :

php app/console doctrine:fixtures:load

Cependant, on attends une réponse à cette commande qui est Y ou N. J'aimerais pouvoir écrire dans mon script : "si on te demande, c'est Y" mais je ne sais pas comment faire.

Merci pour votre aide.

Dernière modification par Ciloe (Le 29/06/2014, à 11:07)

Hors ligne

#2 Le 28/06/2014, à 23:16

Braun

Re : [Résolu] Ecouter un read en ligne de commande

Bonsoir,
On c'est le petit cochon?
Si ta commande attend une réponse de l'entrée standard tu devrais pouvoir la rediriger vers un fichier texte contenant seulement la lettre "Y" suivie d'un CR/LF.

Hors ligne

#3 Le 28/06/2014, à 23:26

Ciloe

Re : [Résolu] Ecouter un read en ligne de commande

Humm, là je suis un gros noob big_smile

Surtout que je lance avec un cron hmm

Dans tous les cas, je veux que ça le fasse juste sur cette demande de read. La commande de base ne permet pas d'outre passer le read.

Peux tu me donner un exemple ?

Dernière modification par Ciloe (Le 28/06/2014, à 23:26)

Hors ligne

#4 Le 29/06/2014, à 07:44

nesthib

Re : [Résolu] Ecouter un read en ligne de commande

Tu veux imposer un « Y » à une commande qui attend ça en entrée ? Tu peux tester avec les commandes « yes » ou « expect ».


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 29/06/2014, à 09:54

Ciloe

Re : [Résolu] Ecouter un read en ligne de commande

Oui c'est ça. Voilà mon script .sh :

#!/bin/bash
# Version 1

cd ../www/test/

php app/console doctrine:database:drop --force
php app/console doctrine:database:create
php app/console doctrine:schema:update --force
php app/console doctrine:fixtures:load # Attend un Y ou N sur un read, et bloque donc le script

php app/console test:generer:etablissement
php app/console test:generer:user
php app/console test:generer:notification

Et voilà ce que la commande demande en read :

$ php app/console doctrine:fixtures:load
Careful, database will be purged. Do you want to continue Y/N ?

"yes" ne fonctionne pas et "expect" ne semble pas être la bonne solution au vu de la doc ?

Dernière modification par Ciloe (Le 29/06/2014, à 09:58)

Hors ligne

#6 Le 29/06/2014, à 11:06

Ciloe

Re : [Résolu] Ecouter un read en ligne de commande

J'ai eu ma réponse.

Il faut mettre dans le script : echo "Y" | php app/console doctrine:fixtures:load

Et une autre info, dans le cron, la demande de Y a été outre passé automatiquement.

Hors ligne

#7 Le 29/06/2014, à 18:53

serged

Re : [Résolu] Ecouter un read en ligne de commande

Il existe aussi la commande "yes" qui renvoie des "y" à plus soif :

yes | tacommande

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne