Script shell unix - Page 2

Résolu
Précédent
  • 1
  • 2
  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Attention !!! Dans le script ci-dessous, la syntaxe du test entre crochets doit être écrite sans l'espace entre les deux premiers crochets ouvrants. Ici j'y suis obligé à cause de la syntaxe employée par CCM pour l'emploi des doubles crochets ;-((
    $ cat couleurs.txt    # fichier externe contenant les couleurs et leur code
    Couleur : verte Code : 1
    Couleur : jaune Code : 2
    Couleur : rouge Code : 3
    $ cat foo.ksh     # script en korn shell
    #! /bin/ksh
    
    clear
    
    while :
    do
    echo "Choisissez une ou 2 valeur(s) maximum\nséparées par une virgule (ex : 1,2)\n"
    cat -n couleurs.txt
    echo
    read choix
    if [ [ "$choix" = "" ]]
    then
    echo "Vous devez choisir au moins une valeur... recommencez s'il vous plaît.\n"
    continue
    fi
    IFS=,
    set $(echo "$choix")
    if (( "$#" > 2 ))
    then
    echo "Vous ne pouvez choisir que 2 valeurs maximum... recommencez s'il vous plaît.\n"
    continue
    fi
    break
    done
    
    set -A tableau $(
    for i in "$@"
    do
    awk -F" " 'NR=='"$i"' { printf "%s %d ",$3,$6 }' couleurs.txt
    done)
    
    echo "Paramètres du tableau = ${tableau[*]}"
    
    $
    L'exécution :
    $ ./foo.ksh
    Choisissez une ou 2 valeur(s) maximum
    séparées par une virgule (ex : 1,2)
    
         1  Couleur : verte Code : 1
         2  Couleur : jaune Code : 2
         3  Couleur : rouge Code : 3
    
      <<<<   # Aucune valeur n'est saisie
    
    Vous devez choisir au moins une valeur... recommencez s'il vous plaît.
    
    Choisissez une ou 2 valeur(s) maximum
    séparées par une virgule (ex : 1,2)
    
         1  Couleur : verte Code : 1
         2  Couleur : jaune Code : 2
         3  Couleur : rouge Code : 3
    
    1,3,2
    Vous ne pouvez choisir que 2 valeurs maximum... recommencez s'il vous plaît.
    
    Choisissez une ou 2 valeur(s) maximum
    séparées par une virgule (ex : 1,2)
    
         1  Couleur : verte Code : 1
         2  Couleur : jaune Code : 2
         3  Couleur : rouge Code : 3
    
    3,1
    Paramètres du tableau = rouge 3 verte 1
    $
    ;-))
    0
Précédent
  • 1
  • 2