Obtenir des arguments avec des drapeaux en bash
Pour obtenir des arguments avec des drapeaux dans Bash, vous pouvez utiliser la commande «getopts». La commande «getopts» est une fonction intégrée dans Bash qui peut être utilisée pour analyser les options et arguments en ligne de commande. Ça prend Trois arguments: la chaîne d'option, la variable pour stocker l'option actuelle, et le nom de la variable pour stocker les arguments restants. Voici un exemple:
#!/ bac / bash
tandis que Getopts ": x: y:" Opt; faire
Case $ opt dans
X)
arg1 = "$ optarg"
;;
y)
arg2 = "$ optarg"
;;
\?)
Echo "invalide: - $ optarg"> & 2
;;
:)
Echo "Option - $ optarg nécessite un argument."> & 2
;;
ESAC
fait
Shift $ ((Optind-1))
Echo "Argument 1: $ arg1"
Echo "Argument 2: $ arg2"
Ici, la commande «getopts» est utilisée pour analyser les options de ligne de commande «-x» et «-y». Le caractère «:» après chaque option indique que l'option nécessite un argument et que la variable «Opt» stocke l'option actuelle, et les variables «Arg1» et «Arg2» stockent les arguments correspondants.
L'instruction «Case» est utilisée pour gérer chaque option, donc si l'option est «X», l'argument est stocké dans «Arg1». Si l'option est «Y», l'argument est stocké dans «Arg2».Un message d'erreur est affiché lorsqu'une option non valide est donnée, ainsi que lorsqu'aucun argument n'est donné même si une option appelle un.
L'Optarg est utilisé pour stocker la valeur de l'argument qui est passé avec les options -x ou -y, tandis que Optind-1 est utilisé pour déplacer les paramètres de position pour exclure les options et leurs arguments, ne laissant que les arguments non optionnels.
Après l'analyse des options, la commande «Shift» est utilisée pour supprimer les options de la liste des arguments. Cela garantit que les arguments restants sont stockés dans la variable correcte.Pour utiliser le script avec des drapeaux, vous pouvez exécuter le script avec les options et arguments de drapeau, comme ceci:
./ /- -
Conclusion
L'utilisation de drapeaux pour transmettre des arguments facultatifs pour dénigrer les scripts peut rendre les scripts plus flexibles et puissants et avec la commande «getopts», vous pouvez facilement analyser les arguments et les options de ligne de commande. En suivant l'exemple de cet article, vous pouvez implémenter des drapeaux dans vos propres scripts bash et les gérer facilement.