J'ai un script bash qui utilise la read
commande pour lire les arguments des commandes de manière interactive, par exemple les options oui / non. Existe-t-il un moyen d'appeler ce script dans un script non interactif en passant des valeurs d'option par défaut en tant qu'arguments?
Ce n'est pas seulement une option que je dois passer au script interactif.
bash
interactive
non-interactive
sidharth sharma
la source
la source
Réponses:
Pour des tâches plus complexes, il existe
expect
( http://en.wikipedia.org/wiki/Expect ). Il simule essentiellement un utilisateur, vous pouvez coder un script comment réagir aux sorties spécifiques du programme et aux éléments associés.Cela fonctionne également dans des cas comme
ssh
celui qui interdit de lui envoyer des mots de passe.la source
Plusieurs façons
pipe votre entrée
rediriger depuis un fichier
utiliser un document ici (cela peut être très lisible)
utiliser une chaîne ici
la source
read
pour saisir stdin, quelle fonction pouvez-vous utiliser pour faire ce que vous avez décrit?Vous pouvez mettre les données dans un fichier et le rediriger comme ceci:
Données pour le script:
Exécution du script:
la source
Je veux juste ajouter un autre moyen. Je l'ai trouvé ailleurs, et c'est assez simple. Dites que je veux passer oui pour toutes les invites en ligne de commande pour une commande "execute_command", alors je dirais simplement oui.
Cela utilisera oui comme réponse à toutes les invites oui / non.
la source
Vous pouvez également utiliser printf pour diriger l'entrée vers votre script.
la source
une autre alternative peut être
La commande tee imprime l'entrée qu'elle reçoit à l'écran et l'enregistre dans un fichier en même temps.
la source