#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
Surtout que je lance avec un cron
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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