Comment passer un argument dans un script Bash ?

How Do I Pass Argument Bash Script



La plupart des utilisateurs de Linux Mint 20 se retrouvent bloqués lors de la transmission d'un argument dans un script bash. Vous pouvez passer les arguments à n'importe quel script bash lorsqu'il est exécuté. Il existe plusieurs façons simples et utiles de passer des arguments dans un script bash. Dans ce guide d'article, nous vous informerons de quelques manières très simples de transmettre et d'utiliser des arguments dans vos scripts bash.

Passage d'arguments à l'aide de variables par défaut :

Créez un nouveau fichier avec n'importe quel nom à l'aide de la commande tactile, par exemple, file.sh.







$touchernom de fichier



Ouvrez ce fichier nouvellement créé et ajoutez-y un script bash. J'ai ajouté quelques variables par défaut, par ex. 1 $, 2 $ et 3 $ par conséquent. Quels que soient les arguments qui seront passés via le terminal, ils seront stockés dans les variables indiquées.







Vous devez exécuter ce fichier en utilisant la commande ./ suivie de quelques arguments. Comme vous pouvez le voir sur l'image, lorsque j'ai passé les arguments, une erreur se produit : Permission refusée. C'est parce que ce fichier n'a pas de droits d'exécution.

$./nom de fichier argument1 argument2 argument

Donc, pour accorder les droits d'exécution sur ce fichier, utilisez la commande sudo chmod pour le faire.



$sudo chmod+x nom de fichier

Maintenant, exécutez à nouveau le fichier en utilisant la même commande ci-dessus. Cette fois, j'ai fourni différents arguments. Vous verrez que les arguments nouvellement transmis sont stockés dans les variables par défaut.

Passer le nom du script Shell comme argument :

Maintenant, en utilisant le même ancien fichier file.sh avec un petit changement dans ses variables par défaut. Vous devez ajouter la variable $0 dans le script comme indiqué.

En exécutant la même commande de script ./ shell, le nom de votre script shell, par ex. ./filename sera stocké dans la variable $0 en tant qu'argument.

Passer des arguments sous forme de tableau à une variable :

En partant du même fichier file.sh, vous devez ajouter quelques lignes supplémentaires dans l'ancien script. Déclarez une variable nommée array. Ajoutez une variable par défaut [email protected] qui stockera les arguments entrés par l'utilisateur sous forme de tableau. Ces arguments seront analysés dans un tableau de variables. La dernière ligne affichera tous les arguments du tableau de variables triés par numéro d'index.

Exécutez le script shell ./. Vous verrez qu'il affichera les arguments ou les valeurs stockés sous forme de tableau dans [email protected] analysé dans un tableau de variables, mais pas le nom du script shell dans la deuxième instruction echo. Vous aurez la sortie suivante.

$./nom de fichier argument1 argument2 argument

Utilisez le même fichier avec le même script. Supprimez simplement le ${array[3]} de la dernière ligne comme indiqué sur l'image.

Après avoir exécuté la commande ./, vous verrez une sortie similaire à celle de l'exemple ci-dessus sans changement.

Vous pouvez également obtenir le même résultat en remplaçant la dernière ligne du script bash par un seul mot. Il vous suffit d'ajouter [email protected] dans l'instruction echo, et cela affichera les arguments présents dans ce tableau de variables.

Donc, en exécutant à nouveau la commande ./, vous obtiendrez les mêmes résultats.

Vérifier le nombre total d'arguments passés :

Au contraire, si vous voulez connaître le nombre total d'arguments passés par l'utilisateur, vous pouvez également le faire. Pour cela, il vous suffit de remplacer [email protected] par $# dans echo.

En exécutant à nouveau la commande ./, vous allez maintenant voir la figure entière des arguments passés au script. Dans notre cas, 3 arguments sont passés en valeur.

Créer une sortie ligne par ligne d'arguments :

Créez un nouveau fichier test.sh dans le répertoire home. Ajoutez le script bash comme indiqué.

Exécutez maintenant la même ancienne commande avec des arguments différents. Tout d'abord, vous verrez l'erreur : Autorisation refusée.

Vous devez exécuter la commande chmod pour accorder à ce fichier les privilèges sudo. Après cela, exécutez à nouveau la commande de script ./ shell. Et vous obtiendrez la sortie des arguments triée ligne par ligne.

Limiter la variable via le numéro d'index d'argument :

Si vous souhaitez limiter la variable à l'aide de son numéro d'index, vous pouvez le faire très facilement. Ajoutez des accolades après le signe $ et ajoutez le numéro d'index de l'argument que vous souhaitez afficher avant les autres arguments.

Si les arguments fournis par les utilisateurs sont inférieurs au numéro d'index fourni dans la variable limit, vous obtiendrez une valeur d'argument vide. À titre d'exemple, j'ai fourni 4 arguments, mais j'ai donné la valeur d'argument 05 à afficher. Dans ce cas, la variable sera affichée vide car le cinquième argument n'a pas été passé.

Mais lorsque vous passez le nombre égal ou supérieur d'arguments dans la commande, vous obtiendrez la valeur affichée dans le résultat, comme indiqué.

Vérification des arguments de valeur spécifiques :

Créez un nouveau fichier avec le nom Check.sh dans votre répertoire personnel. Ajoutez le même script bash comme indiqué dans l'image ci-dessous. Dans ce script, nous avons une variable var pour stocker la valeur de l'argument passé par l'utilisateur. Ensuite, nous avons une instruction if, qui vérifiera si la valeur de l'argument correspond ou non. Si la valeur de l'argument correspond à la valeur fournie entre parenthèses, la première instruction echo sera exécutée. Si la valeur ne correspond pas, la deuxième instruction echo sera exécutée.

Lorsque nous exécutons la commande de script shell, une erreur est générée. En utilisant la commande chmod, nous pouvons corriger cette erreur.

Après cela, exécutez le script shell pour le fichier particulier avec une valeur d'argument. Dans notre cas, nous avons fourni Aqsa comme valeur d'argument, qui est la même que la valeur affichée entre parenthèses. Ainsi, le script bash exécutera la première instruction echo comme indiqué.

D'un autre côté, si vous fournissez les différentes valeurs d'argument dans le script shell, il affichera l'autre instruction echo. Ici, j'ai ajouté Rimsha comme valeur d'argument, qui est différente de la valeur fournie dans l'instruction if. Le script bash exécutera donc la deuxième instruction echo.

Conclusion:

J'espère que ce guide vous a suffisamment aidé pour bien comprendre comment passer des arguments aux variables par défaut, passer la valeur de l'argument sous forme de tableau à une variable, obtenir le nombre total d'arguments passés, sortie ligne par ligne des arguments, limiter l'argument sortie en utilisant le numéro d'index, en vérifiant l'argument de valeur spécifique et bien d'autres.