Comment passer un argument nommé dans un script shell?

Comment passer un argument nommé dans un script shell?
Les scripts de shell dans Linux vous permettent d'écrire des programmes avec des valeurs et des programmes codés en dur qui peuvent prendre les entrées des utilisateurs lors de l'exécution. Ces entrées utilisateur sont appelées paramètres ou arguments. Nous connaissons tous généralement la transmission des arguments normaux aux scripts de coquille. Cependant, vous pouvez parfois ressentir le besoin de passer des «arguments nommés» à vos scripts de coquille. Cet article vous guidera davantage sur ce qui est exactement nommé Arguments et leur besoin dans les scripts shell. Après cela, nous partagerons un vaste exemple de passage des arguments nommés à un script shell dans Ubuntu 20.04.

Arguments nommés dans les scripts shell dans Ubuntu 20.04

À présent, nous comprenons clairement que nous pouvons facilement écrire de tels scripts de coquille dans Ubuntu 20.04 qui sont capables de prendre des arguments en tant que contribution de l'utilisateur lors de l'exécution de ces scripts du terminal. Cependant, un type d'arguments différents appelés «arguments nommés» est également couramment utilisé dans les scripts de coquille. Un argument nommé est celui qui est symbolisé par une paire «name-valeur». Cette paire «nom-valeur» est définie dans le script shell, et l'argument correspondant est passé de la même manière lors de l'exécution du script lorsque vous passez les arguments normaux.

Alors quelle est la signification de l'utilisation des arguments nommés dans les scripts shell? Eh bien, parfois, vous définissez les arguments de vos scripts de coquille, mais tout en exécutant ces scripts, vous n'aurez peut-être pas nécessairement besoin de fournir tous ces arguments. Les arguments nommés vous permettent de sauter les valeurs de autant de ces arguments que vous le souhaitez pendant l'exécution de votre script. Dans ce cas, si vous aviez utilisé les arguments normaux, votre système aurait rendu un message d'erreur et ne vous aurait pas permis de procéder à l'exécution de votre script si vous auriez sauté des arguments prédéfinis dans votre script.

De plus, parfois, vous pourriez également modifier l'ordre de passer les arguments lors de l'exécution d'un script de shell, je.e., Vous passez les arguments dans un ordre aléatoire au lieu de celui qui est suivi tout en déclarant les variables dans votre script de shell. Les arguments nommés vous permettent facilement de le faire, alors que d'un autre côté, si vous aviez utilisé les arguments normaux dans cette situation, alors encore une fois, un message d'erreur aurait été généré en raison de ne pas suivre l'ordre des arguments corrects. Par conséquent, vous pouvez dire que les arguments nommés offrent plus de flexibilité aux utilisateurs tout en fournissant des entrées au lieu de les restreindre.

Maintenant, lorsque vous réalisez l'importance d'utiliser les arguments nommés dans les scripts shell, voyons comment nous pouvons utiliser ces arguments dans un script shell sur un Ubuntu 20.04 Système.

Exemple de passage des arguments nommés à un script shell dans Ubuntu 20.04

Pour passer des arguments nommés à un script shell dans Ubuntu 20.04, nous avons conçu un script shell affiché dans l'image ci-dessous. Nous exécuterons ce script shell avec différents arguments ou valeurs d'entrée dans cette section.

Dans ce script de shell, nous avons utilisé la fonction «Getopts» intégrée dans la coque à l'intérieur d'une boucle. Cette fonction prend essentiellement des paramètres nommés comme entrée de l'utilisateur. Ensuite, nous avons défini trois cas différents, je.e., «N, A et G» correspondant à nos variables «Nom, âge et genre» respectivement. Ces affaires sont définies contre la variable «drapeau» sur laquelle notre déclaration de cas-ESAC exécutera. L'énoncé de cas-ESAC dans la coquille est essentiellement un équivalent de l'instruction Switch en C. Ensuite, à l'intérieur du bloc Case-ESAC, nous avons répertorié les trois cas qui ont été déclarés plus tôt, je.e., N, A et G. Contre chaque cas, nous avons déclaré une variable égale à l'argument fourni par l'utilisateur comme entrée lors de l'exécution du script. Chaque argument fourni par l'utilisateur sera affecté à la variable pertinente à chaque fois que ce script sera exécuté. Ensuite, nous avons enfin trois commandes «Echo» qui sont là pour imprimer les valeurs du nom, de l'âge et du sexe des variables, respectivement.

Après avoir conçu ce script, nous l'exécuterons d'abord avec des arguments normalement nommés dans l'ordre correct comme suit:

$ bash nommé.sh -n aqsa -a 27 -g femelle

Ici, nommé.sh représente le nom de notre script shell. De plus, vous pouvez voir sur cette commande que nous avons d'abord répertorié les drapeaux, suivis de leurs arguments respectifs à passer. En outre, vous pouvez clairement remarquer que nous avons passé ces arguments dans l'ordre exact car ils ont été définis dans notre script shell.

Maintenant, lorsque ce script shell sera exécuté, vous pourrez voir les valeurs attribuées à tous vos paramètres nommés sur le terminal, comme indiqué dans l'image ci-dessous:

Une fois que nous avons exécuté ce script dans le flux normal, nous pouvons essayer une petite expérience en exécutant ce script shell avec les mêmes valeurs d'entrée mais dans un ordre légèrement différent, comme indiqué dans la commande suivante:

$ bash nommé.sh -n aqsa -g femelle -a 27

Vous pouvez voir dans cette commande que nous avons changé l'ordre des arguments de genre et d'âge de celui qui a été défini initialement dans le script shell. Maintenant, nous allons essayer de savoir si ces valeurs sont correctement affectées à nos arguments nommés ou non.

Lorsque cette commande sera exécutée, vous pourrez voir à partir de sa sortie que, quel que soit l'ordre dans lequel les arguments sont passés lors de l'exécution du script shell, ils seront toujours affectés aux variables correctes comme indiqué dans l'image ci-dessous:

Dans certaines situations, un utilisateur pourrait ne pas vouloir révéler son âge. Dans cette situation, il / elle exécutera ce script de shell de la manière suivante:

$ bash nommé.sh -n aqsa -g femelle

Dans la sortie de ce script shell, lorsqu'il est exécuté avec les arguments indiqués ci-dessus, vous pouvez clairement voir que notre système n'a généré aucun message d'erreur; Il a plutôt exécuté en douceur notre script avec les paramètres fournis tout en laissant la variable d'âge vide.

De la même manière, vous pouvez également essayer de sauter la variable de genre tout en fournissant la valeur de la variable de nom de la manière ci-dessous:

$ bash nommé.sh -n aqsa

La sortie correspondante de cette commande est affichée dans l'image suivante:

Enfin, nous essaierons d'exécuter ce script sans fournir d'arguments comme suit:

$ bash nommé.shot

Encore une fois, vous pouvez voir à partir de la sortie suivante qu'aucun message d'erreur n'est généré; Au contraire, notre script a exécuté avec succès même sans aucun argument fourni.

Conclusion

À partir de l'exemple détaillé discuté dans ce tutoriel, nous pouvons conclure qu'il sera toujours exécuté avec succès quel que soit l'ordre des arguments nommés fournis à un script shell. De plus, même si vous ne prévoyez aucun argument à votre script, il peut toujours être exécuté sans aucune erreur. Cependant, la seule chose dont vous avez besoin pour faire attention lors de la réussite des arguments nommés est d'utiliser l'indicateur correct suivi de sa valeur correspondante lors de l'exécution de votre script de shell.