GNU/Linux >> Tutoriels Linux >  >> Linux

Comment passer un argument de ligne de commande dans un script shell ?

Je sais que les scripts shell exécutent simplement des commandes comme si elles étaient exécutées à l'invite de commande. J'aimerais pouvoir exécuter des scripts shell comme s'il s'agissait de fonctions… C'est-à-dire prendre une valeur d'entrée ou une chaîne dans le script. Comment dois-je procéder ?

Réponse acceptée :

La commande shell et tous les arguments de cette commande apparaissent comme numérotés variables shell :$0 a la valeur de chaîne de la commande elle-même, quelque chose comme script , ./script , /home/user/bin/script ou peu importe. Tous les arguments apparaissent sous la forme "$1" , "$2" , "$3" etc. Le nombre d'arguments est dans la variable shell "$#" .

Les moyens courants de gérer cela impliquent les commandes shell getopts et shift . getopts ressemble beaucoup au C getopt() fonction bibliothèque. shift déplace la valeur de $2 à $1 , $3 à $2 , etc; $# se décrémente. Le code finit par regarder la valeur de "$1" , faire des choses en utilisant un caseesac pour décider d'une action, puis faire un shift pour déplacer $1 à l'argument suivant. Il n'a qu'à examiner $1 , et peut-être $# .


Linux
  1. Comment les arguments de la ligne de commande distante Ssh sont-ils analysés ?

  2. Comment passer la sortie d'une commande comme argument à une autre ?

  3. Comment savoir si la sortie d'une commande ou d'un script shell est Stdout ou Stderr ?

  4. 6 Attendez-vous à des exemples d'arguments de ligne de commande de script

  5. Comment utiliser les fonctions du shell de ligne de commande sous Linux

Comment exécuter une commande / un script Linux Shell en arrière-plan

Comment démarrer en ligne de commande Linux

Comment stocker une commande Linux en tant que variable dans un script shell

Comment exécuter une commande dans un script shell ?

Comment lire les arguments de ligne de commande dans les scripts shell ?

Comment passer des arguments à un script invoqué par la commande source ?