Script Shell pour répondre à un READ

Résolu
Bonjour,
Bonjour,
Je voudrais savoir comment répondre par un script SHELL au read d'un autre programme

quand je lance mon programme il me demande d'entrer le nom du fichier à manipuler :

/home/> ./mon_programme
ENTREZ LE NOM DU FICHIER QUE VOUS VOULEZ OUVRIR :
(là un read attend une réponse)

Je voudrais savoir comment faire pour répondre à ce read grâce à un script SHELL que je voudrais lancer de la sorte :

/home/> ./mon_script mon_fichier

J'ai commencé par écrire cela :
!#/bin/sh
./mon_programme

et c'est là que je ne sais pas comment faire pour utiliser le $1 pour répondre au read de mon_programme

merci d'avance
Configuration: Windows 2000 Internet Explorer 6.0

5 réponses

  1. Modérateur
    Salut,

    C'est un fichier de réponse que tu veux ?
    Essaies ça :
    [tmpfs]$ cat foo.sh
    #! /bin/sh
    
    #set -xv
    
    read -p "Quelle est la 1ère couleur du drapeau tricolore ? " color1
    read -p "Quelle est la 2ème couleur du drapeau tricolore ? " color2
    read -p "Quelle est la 3ème couleur du drapeau tricolore ? " color3
    read -p "Voulez-vous quitter ? " choix
    read -p "Vous me dites aurevoir ? " bye
    echo
    echo "La 1ère couleur est : $color1"
    echo "La 2ème couleur est : $color2"
    echo "La 3ème couleur est : $color3"
    echo "Vous avez répondu ${choix}, alors $bye..."
    
    [tmpfs]$ cat fich
    bleu
    blanc
    rouge
    oui
    Bye bye
    
    [tmpfs]$ ./foo.sh <fich
    
    La 1ère couleur est : bleu
    La 2ème couleur est : blanc
    La 3ème couleur est : rouge
    Vous avez répondu oui, alors Bye bye...
    
    [tmpfs]$  
    ;-))
    1. Contributeur
      On ne saura même pas si ./mon_programme mon_fichier fonctionne alors... :)
      1. Modérateur
        Salut,

        Non sans la redirection "<" ça marche pô ;-((
    2. Contributeur
      Même si le programme attend un argument ?
      Je mélange un peu tout moi en ce moment...
      1. Modérateur
        Dans ton cas l'argument c'est le nom du fichier et non son contenu ;-)