C'est rediriger la sortie standard de "echo" vers l'entrée standard de "mon_programme" mon programme au moyen d'un pipe.
Un pipe d'un point de vu fonctionnel c'est un tampon fifo (first in, first ou), c'est à dire que si tu écris "coucou" puis "hello" dans un pipe, le programme qui le lie va lire "coucou" puis "hello" (il existe des fonctionnement différents).
La commande mkfifo permet de créer comme un pipe mais nommé, il apparaît dans le système de fichier. Tu peut alors remplacer la commande si dessus par :
[code]mkfifo monFIFO
echo "coucou" >> monFIFO
mon_programme < monFIFO[/code]
Dans ton cas tu devrais pouvoir faire ça :
[code]#!/bin/bash
FIFO="monFIFO"
mkfifo "${FIFO}"
sudo apt-get upgrade < "${FIFO}" &
# ici tu va avoir un problème que je te laisse résoudre (pas le temps de regarder plus en détail)
# il faut que sudo exécute bien la commande : « apt-get upgrade < "${FIFO}" & » et pas simplement « apt-get upgrade »
read -n1
if [ "${REPLY}" == 'p' ] ; then
echo 'p' >> "${FIFO}"
echo "c'est bon"
fi[/code]
C’est rediriger la sortie standard de “echo” vers l’entrée standard de “mon_programme” mon programme au moyen d’un pipe.
Un pipe d’un point de vu fonctionnel c’est un tampon fifo (first in, first ou), c’est à dire que si tu écris “coucou” puis “hello” dans un pipe, le programme qui le lie va lire “coucou” puis “hello” (il existe des fonctionnement différents).
La commande mkfifo permet de créer comme un pipe mais nommé, il apparaît dans le système de fichier. Tu peut alors remplacer la commande si dessus par :
mkfifo monFIFO
echo "coucou" >> monFIFO
mon_programme < monFIFO
Dans ton cas tu devrais pouvoir faire ça :
[code]#!/bin/bash
FIFO="monFIFO"
mkfifo "${FIFO}"
sudo apt-get upgrade < “${FIFO}” &
ici tu va avoir un problème que je te laisse résoudre (pas le temps de regarder plus en détail)
il faut que sudo exécute bien la commande : « apt-get upgrade < “${FIFO}” & » et pas simplement « apt-get upgrade »
read -n1
if [ “${REPLY}” == ‘p’ ] ; then
echo ‘p’ >> "${FIFO}"
echo "c’est bon"
fi[/code]