J'essaie d'exécuter un utilitaire (nco_confpack) qui fonctionne parfaitement bien lorsqu'il est utilisé directement sur la ligne de commande. Mais quand j'utilise le même utilitaire dans une boucle while dans un script shell, l'utilitaire entre en boucle infinie sans accepter aucune entrée. Comment éviter cette boucle infinie pour l'utilitaire? ci-dessous est l'extrait de code qui fonctionne très bienComment exécuter un utilitaire de demande d'entrée dans une boucle dans un script shell?
bash-3.2$ $OMNIHOME/bin/nco_confpack -import -server SERVERA -user root -password XXXXX-select Class.list -package Class.jar
*********************************************************************
* W A R N I N G *
* *
* This action may overwrite configuration currently in your system. *
* *
* It is recommended that a backup is made of the current data *
* before importing new data. *
* *
*********************************************************************
Do you want to continue (y/n) [N]? y
bash-3.2$
Cependant, lorsque le même utilitaire est placé dans une boucle while la Voulez-vous continuer (y/n) message entre dans une boucle infinie sans accepter toute entrée
bash-3.2$ ./classInstall.sh
Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? Do you want to continue (y/n) [N]? ^C
Qu'est-ce que je fais mal ici? Est-ce que quelque chose ne va pas avec l'utilitaire ou dois-je mentionner explicitement quelque chose dans le script?
Le script contient la même commande juste qu'elle s'exécute sous une boucle while finie.
bash-3.2$vi classInstall.sh
cat $1 | while read theLine
do
$OMNIHOME/bin/nco_confpack -import -server SERVERA -user root -password XXXXX-select Class.list -package Class.jar
done
1 $ contient deux entrées seulement pour la boucle, et la commande devrait fonctionner deux fois seulement
La boucle se produit-elle automatiquement ou l'invite ne se répète-t-elle que lorsque vous appuyez sur entrer? –
Il pourrait être utile de montrer le code en question. – chepner
@NicolaiEhemann la boucle se produit automatiquement avant d'accepter quoi que ce soit de l'utilisateur/invite. –