GNU/Linux >> Tutoriels Linux >  >> Linux

Vérifier qu'il y a au moins deux arguments donnés dans un script bash

Utilisez le $# variable spéciale. Sa valeur est le nombre d'arguments. Donc si vous avez un script qui ne contient que :

echo $#

et exécutez-le comme ceci :

thatscript foo bar baz quux

Il imprimera 4.

Dans votre cas, vous voudrez peut-être faire quelque chose comme :

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

En partant de l'exigence de la question que les arguments doivent contenir "au moins 2 choses", je pense qu'il pourrait être plus précis de vérifier :

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

Utilisation de l'expansion arithmétique (( )) l'empêchera d'atteindre exit 1 pour toute valeur non égale à 2.

Si vous utilisez if [ $# -ne 2 ]; il déclenchera la condition pour n'importe quel nombre d'arguments autre que 2.

Edit :il semble que la réponse acceptée ait été mise à jour pour inclure un exemple équivalent (et plus portable ?) de cela.


Linux
  1. Tester s'il existe des fichiers correspondant à un modèle afin d'exécuter un script ?

  2. Passer les arguments de la ligne de commande au script Bash ?

  3. Script Bash :vérifier si un fichier est un fichier texte ?

  4. Comment vérifier la sous-chaîne dans Shell Script Bash?

  5. Vérifiez combien de temps un script bash prend pour s'exécuter avec la commande Time

Bash Beginner Series #3 :Passer des arguments aux scripts Bash

Comment vérifier la syntaxe d'un script Bash sans l'exécuter ?

Comment puis-je écrire un script bash Linux qui m'indique quels ordinateurs sont allumés dans mon réseau local ?

Exécutez la commande bash sur le pipeline jenkins

Existe-t-il un moyen d'afficher la notification du script bash dans Ubuntu ?

Comprendre comment les entrées sont envoyées aux canaux dans Bash