Sous UNIX, j'ai un processus que je veux exécuter à l'aide de nohup. Cependant, ce processus attendra à un moment donné à une invite où je dois entrer yes
ou no
pour qu'il continue. Jusqu'à présent, sous UNIX, j'ai fait ce qui suit:
nohup myprocess <<EOF
y
EOF
Je lance donc le processus 'myprocess' en utilisant nohup et pipe dans un fichier avec 'y' puis ferme le fichier. Les lignes ci-dessus sont en fait trois commandes distinctes - c'est-à-dire que j'appuie sur Entrée sur la première ligne sous UNIX, puis je reçois une invite où j'entre «y», puis appuyez sur Entrée pour enfin taper «EOF» et appuyez à nouveau sur Retour. Cela fonctionne donc parfaitement, mais mon problème est ci-dessous.
Je veux maintenant l'exécuter en Perl, mais je ne sais pas comment exécuter cette commande, car elle se déroule sur trois lignes. Je ne sais pas si cela fonctionnera:
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
Réponses:
Si vous voulez juste écrire un single
y
dans le stdin du processus, vous pouvez le faire:Si vous souhaitez continuer à écrire
y
pour chaque invite qui apparaît, le coreutilyes
existe exactement à cette fin - il continuera à écrire tout ce que vous lui direz à stdout. Sa valeur par défaut est de sortir "y", vous pouvez donc simplement:mais si vous avez besoin d'autre chose, vous pouvez le passer comme argument
la source
yes
utilisé depuis des éons