Est-il un moyen d'éviter les arguments de position en bash?

Je dois écrire une fonction dans bash. La fonction prendra environ 7 arguments. Je sais que je peux appeler une fonction comme ceci:

Pour appeler une fonction avec des paramètres:

function_name $arg1 $arg2

Et je peux utiliser mes paramètres à l'intérieur de la fonction:

function_name () {
   echo "Parameter #1 is $1"
}

Ma question est, est-il une meilleure façon de consulter les paramètres à l'intérieur de la fonction? Puis-je éviter l'$1, $2, $3, .... chose et tout simplement utiliser le $arg1, $arg2, ...?

Est-il une bonne méthode pour cela ou dois-je besoin de ré-affecter ces paramètres à d'autres variables à l'intérieur de la fonction? E. g.:

function_name () {
   $ARG1=$1
   echo "Parameter #1 is $ARG1"
}

Un exemple serait très apprécié.

  • Quelle est la différence entre l'utilisation de $1 vs $ARG1?
  • Je peux utiliser plus intuitive nom, au lieu de $1, $2. Les chiffres sont source de confusion.
  • Avez-vous vraiment besoin de sept paramètres obligatoires? Une approche commune serait de tourner autant que possible dans les options, et de fournir une valeur par défaut lorsque cela a du sens. Il rend votre script beaucoup plus facile à utiliser si vous n'avez pas à mémoriser un particulier de position de commande pour un tel grand nombre d'arguments, même si la plupart des utilisateurs devraient remplacer les valeurs par défaut la plupart du temps.
  • Hey @Bhushan! Je pense que j'ai une solution pour vous. J'ai posté une réponse: stackoverflow.com/questions/12128296/...
  • Cette question ressemble à ceci : Spécifier des arguments de ligne de commande comme les paires nom=valeur de shell-script
InformationsquelleAutor Bhushan | 2012-08-26