J’ai un script en cours d’exécution qui attend l’entrée et imprime “Attente de saisie” toutes les 15 secondes pour la sortie standard. Je dois émuler l’action de coller la liste des adresses IP dans stdin pendant que le script est en cours d’exécution. Par exemple, manuellement, je dois suivre ces étapes: copier la liste ci-dessous, y compris la nouvelle ligne après le dernier élément de la liste et la coller directement dans stdin.
127.0.0.1 127.0.0.2 127.0.0.3
J’ai essayé d’utiliser des pipes et des redirections (avec les deux \ n et \ r) du fichier sans chance
echo "127.0.0.1\n127.0.0.2\n" | script
ou
script < file
où fichier contient les mêmes adresses IP. Aucune suggestion?
Utilisez un FIFO!
mkfifo /path/to/tmp.fifo tail -f /path/to/tmp.fifo | script
Maintenant, chaque fois que vous envoyez quelque chose au fifo (à partir d’un autre TTY, d’un processus quelconque), ce sera comme si vous aviez tapé dans le script en attente, par exemple
echo "127.0.0.1" >> /path/to/tmp.fifo
Utilisez le cat
Si vous exécutez:
cat | script
vous pouvez couper-n-coller ou taper dans le tty.