A partir d'un programme en C, tu peux toujours redéfinir tes 3 flux d'E/S (stdin, stdout, stderr) à l'aide de l'appel dup(int) de <unistd.h> décrit dans "man dup".
Tu peux aussi le faire en ligne de commande: (ici en concatenant un fichier donné sur l'entrée standard puis un fichier test.sh sur l'entrée standard de mon programme "bash")
shell1# echo "echo hello world" > test.sh
shell1# cat /dev/stdin test.sh | bash
shell2# echo "ma commande à la main"
puis CTRL+D
affiche bien:
ma commande à la main
hello world
# Duplication des E/S standards
Posté par pma . En réponse au message Reprendre la main sur un tty. Évalué à 1.
A partir d'un programme en C, tu peux toujours redéfinir tes 3 flux d'E/S (stdin, stdout, stderr) à l'aide de l'appel dup(int) de <unistd.h> décrit dans "man dup".
Tu peux aussi le faire en ligne de commande: (ici en concatenant un fichier donné sur l'entrée standard puis un fichier test.sh sur l'entrée standard de mon programme "bash")
shell1# echo "echo hello world" > test.sh
shell1# cat /dev/stdin test.sh | bash
shell2# echo "ma commande à la main"
puis CTRL+D
affiche bien:
ma commande à la main
hello world