scripts bash: si des arguments est égale à cette chaîne, de définir une variable comme cette chaîne

Je suis en train de faire un script bash et maintenant j'ai une variable appel source et un tableau appelé samples, comme ceci:

source='country'
samples=(US Canada Mexico...)

que je veux augmenter le nombre de sources (et de chaque source a ses propres échantillons) j'ai essayé d'ajouter quelques arguments pour ce faire. J'ai essayé ceci:

source=""
samples=("")
if [ $1="country" ]; then
   source="country"
   samples="US Canada Mexico..."
else
   echo "try again"
fi

mais quand j'ai couru mon script source countries.sh country il ne fonctionne pas.
Ce que je fais mal?

  • comment est-il pas de travail? Lorsque vous l'exécutez, vous obtenez un message d'erreur, ou il est dit "try again", ou quelque chose d'autre?
  • oui, vous pouvez penser que " la question est très simple. mais vous avez été de penser à ce sujet pendant un certain temps. Veuillez envisager l'édition de votre question pour prévoir des sorties et tous les messages d'erreur que vous obtenez. +1 pour le fait d'essayer quelque chose et de la bonne mise en forme de question. bonne chance.
  • Pourquoi est-ce code, le même que celui proposé et accepté solution? C'est clair... je devine la question initiale n'ont pas les espaces à droite après le crochet ouvrant et avant l'accolade fermante de la si la peine?
  • si vous regardez de près, $1="country" vs $1 = "country"
InformationsquelleAutor Alejandro | 2012-03-15