Script shell unix - Page 2

Résolu
Précédent
  • 1
  • 2
jipicy Messages postés 41342 Statut Modérateur 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