[shell] liste de paramètres dans un case

Résolu
Bonjour,

J'essaye de faire un case en shell avec une liste de paramètres dans un fichier de configuration.

Je m'explique :
# cat liste_param.txt
param1|param2|param3|param4

	case $PARAM in
	    `cat liste_param.txt`)
			echo " très bon choix !!"
			;;
		*)     
                        echo "****Erreur: Param non conforme"
			exit 2;;
	esac


En somme, le choix de l'argument ne fonctionne pas, ça me renvoi "Param non conforme" à tout les coups :(

D'avance merci à celui qui connait la solution .
Configuration: Windows XP
Firefox 3.0.1

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    C'est un peu tiré par les cheveux, mais bon ça le fait, à la limite un test sur le code retour de la commande serait bien mieux :
    #! /bin/bash
    
    echo "Entrez un paramètre :"
    read PARAM
    case $PARAM in
    $(egrep -o "\b${PARAM}\b" liste_param.txt) )
            echo " très bon choix !!"
            ;;
    *)
            echo "****Erreur: Param non conforme"
            exit 2
            ;;
    esac
    1. Dois je en déduire qu'il est impossible d'avoir une liste de choix dynamique ?
      1. Modérateur
        Salut,

        D'où tires-tu la valeur de "$PARAM" ? D'une instruction "read" ?