Comment lire les arguments de ligne de commande dans un bash

Comment lire les arguments de ligne de commande dans un bash

Lorsque vous travaillez avec des scripts bash, vous pouvez rencontrer des situations où vous devez transmettre des arguments à votre script via la ligne de commande. Dans cet article, nous explorerons les différentes façons de lire les arguments de ligne de commande dans Bash et de fournir des exemples de chaque méthode.

Que sont les arguments de ligne de commande dans Bash

Les arguments de ligne de commande en bash sont les paramètres qui sont transmis à un script ou à une commande bash lorsqu'il est exécuté à partir de la ligne de commande. Ils sont utilisés pour personnaliser le comportement du script ou de la commande, et peuvent inclure des options, des drapeaux ou des valeurs utilisés par le script ou la commande pour effectuer des tâches spécifiques.

Comment lire les arguments de ligne de commande dans un bash

Pour modifier le comportement des arguments de ligne de commande de script, les arguments principalement utilisés qui incluent des options ou des drapeaux. Par exemple, vous pouvez avoir un script qui effectue une opération de sauvegarde et vous souhaitez inclure une option pour spécifier le dossier de destination pour la sauvegarde. Voici les trois façons dont on peut lire les arguments de ligne de commande dans le script bash:

    • Utilisation de $ signe
    • Utilisation de Shift
    • Utilisation de la commande getops

Comment lire les arguments de ligne de commande en utilisant $ Command in Bash

La façon la plus élémentaire de lire les arguments de ligne de commande dans Bash est d'utiliser les variables 0 $, 1 $, 2 $, etc. Ces variables représentent le nom du script (0 $) et les paramètres de position transmis au script (1 $, 2 $, etc.). Voici un exemple de code bash qui utilise la commande $ pour lire les arguments de ligne de commande:

#!/ bac / bash
Echo "Nom du script: 0 0"
Echo "Argument1: 1 $"
Echo "Argument2: 2 $"


Ce script lit les arguments de ligne de commande en bash en utilisant les variables de 0 $, 1 $ et 2 $. La variable de 0 $ contient le nom du script lui-même, tandis que 1 $ et 2 $ contiennent les premiers et deuxième arguments de ligne de commande, respectivement et pour transmettre des arguments au script ici est la syntaxe:


Ici, le nom du fichier peut être inclus comme argument s'ils commencent à partir de 0 $ et ainsi de suite, ce script lit les arguments de ligne de commande en bash en utilisant les variables de 0 $, 1 $ et 2 $. La variable à 0 $ contient le nom du script lui-même, tandis que 1 $ et 2 $ contiennent les premier et deuxième arguments de ligne de commande, respectivement et ci-dessous, la sortie est la sortie:

Comment lire les arguments de ligne de commande à l'aide de la commande Shift dans Bash

La commande «Shift» dans Bash vous permet de déplacer les paramètres de position vers la gauche, de jeter le premier argument et de déplacer le reste par une position. Cela peut être utile si vous devez traiter les arguments dans une boucle ou si vous souhaitez gérer les arguments dans un ordre spécifique. Voici un exemple:

!/ bac / bash
Echo "Nom du script: 0 0"
tandis que ["$ #" -gt 0]; faire
Echo "Argument1": 1 $
changement
fait


Le script commence par imprimer le nom du script à l'aide de la variable de 0 $, qui contient le nom du script tel qu'il a été appelé à partir de la ligne de commande. La section suivante du script est une boucle de temps qui vérifie s'il y a des arguments de ligne de commande restants à traiter. Il le fait en vérifiant la valeur de la variable spéciale $ #, qui contient le nombre d'arguments de ligne de commande.

La boucle imprime ensuite l'argument actuel à l'aide de la variable à 1 $, qui contient le premier argument, puis utilise la commande Shift pour supprimer le premier argument de la liste des arguments de ligne de commande. Cela déplace tous les arguments restants par une seule position, de sorte que 1 $ devient le deuxième argument, 2 $ devient le troisième argument, et ainsi de suite.

Comment lire les arguments de ligne de commande à l'aide de getopts

La commande «Getopts» dans Bash vous permet d'analyser les arguments et les options de la ligne de commande, ceci est utile lorsque vous devez donner des arguments ou des indicateurs facultatifs à votre script. Voici un exemple de code qui utilise la commande getOPTS et lisez deux arguments de la ligne de commande:

#!/ bac / bash
tandis que Getopts ": A: B:" Opt; faire
Case $ opt dans
a) arg1 = "$ optarg"
;;
b) arg2 = "$ optarg"
;;
\?) Echo "Option non valide - $ optarg"> & 2
;;
ESAC
fait
Echo "Argument 1: $ arg1"
Echo "Argument 2: $ arg2"


La commande getOPTS est utilisée pour parcourir les options et arguments sur la ligne de commande. Il faut deux arguments: l'une est une chaîne de toutes les options attendues, et l'autre est le nom de variable qui conservera la valeur de l'option actuellement traitée.

Dans ce script, les options attendues sont -a et -b, qui sont suivies par leurs arguments correspondants. La commande getopts analyse ces options et arguments et les attribue à la variable $ opt.

L'instruction de cas est ensuite utilisée pour traiter chaque option. Si l'option est -a, la valeur de l'argument correspondant est attribué à la variable $ arg1. Si l'option est -b, la valeur de l'argument correspondant est attribué à la variable $ arg2. Si une option non valide est détectée, un message d'erreur est imprimé dans la console.

Une fois que toutes les options et arguments ont été traités, le script imprime les valeurs de $ arg1 et $ arg2 à la console à l'aide de la commande echo, voici la sortie du code:

Conclusion

Les arguments de ligne de commande dans bash sont utilisés pour transmettre des paramètres à un script ou une commande lorsqu'il est exécuté à partir de la ligne de commande. Ils peuvent inclure des valeurs, des options ou des drapeaux qui modifient le comportement du script et sont essentiels pour personnaliser le comportement des scripts et commandes bash. Il existe trois façons de lire les arguments de la ligne de commande et ceux-ci sont les suivants: Utiliser $ signe, en utilisant la commande getops et en utilisant Shift et tout cela est mentionné dans ce guide.