Vérifiez si une variable contient un nombre en bash

Vérifiez si une variable contient un nombre en bash

Un nombre est une combinaison de 0 à 9 chiffres - les variables bash stocke toute valeur sous forme de chaînes. Même si la valeur stockée est en format de chaîne, nous pouvons effectuer toutes les opérations arithmétiques si la valeur stockée est un nombre valide. En tant que meilleure pratique, nous devons vérifier les valeurs des variables avant d'effectuer les opérations arithmétiques.

Un nombre peut être un nombre entier, un nombre de points flottants ou un nombre positif / négatif qui préfixe avec un symbole «+ et -». Dans ce tutoriel, nous avons discuté de quelques méthodes pour vérifier que la variable ne contient que des chiffres, des entiers et des valeurs doubles ou flottantes, pas des alphabets.

Utilisation de l'opérateur Tilde (= ~) égal

L'expression régulière est un moyen rapide et facile de vérifier si une valeur est un nombre. Dans les scripts bash, le Tilde égal (= ~) L'opérateur est utilisé pour comparer une valeur avec une expression régulière. Qui peut être utilisé avec la déclaration de bash si:

#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est une lecture entière -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [0-9] + $]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi
12345678910#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est une lecture entière -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [0-9] + $]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi

Écrivez l'extrait ci-dessus dans un script de shell et exécutez. première entrée un numéro de valeur.

Première exécution Veuillez entrer un nombre: 12 12 est un nombre 

Exécutez à nouveau le script avec certains alphabets et vérifiez la sortie:

Deuxième exécution Veuillez saisir un numéro: 1A2B 12A n'est pas un nombre 

Vérifiez si le numéro de point flottant

Un numéro de point flottant est un type entier qui représente un nombre qui peut contenir une partie fractionnaire (également connue sous le nom de flotteur). Comme son nom l'indique, ces chiffres peuvent prendre des valeurs différentes à différents endroits et heures. Les nombres de points flottants sont généralement utilisés pour représenter des nombres avec un point décimal. Par exemple, 1.0, 0.6 et 10.26 sont tous des nombres à virgule flottante.

Écrivez un nouveau script shell qui considère un numéro de point flottant comme un numéro valide.

#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est un numéro # qui peut être un numéro de point entier ou un point flottant en lecture -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [0 -9] + ([[.] [0-9] +)?$]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi
1234567891011#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est un numéro # qui peut être un numéro de point entier ou un point flottant en lecture -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [0 -9] + ([[.] [0-9] +)?$]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi

Exécutez le script ci-dessus en saisissant certains numéros de point flottants. Ce script considérera tous les nombres de points flottants comme des nombres valides.

Première exécution Veuillez saisir un numéro: 12.10 12.10 est un nombre 

Utilisation des instructions de cas de commutateur

Certains des scripts devaient avoir une déclaration de cas. Qui est similaire aux instructions de commutation dans d'autres langages de programmation. Nous pouvons également utiliser des expressions régulières dans les options de cas de cas et vérifier si l'entrée donnée est un nombre.

#!/ usr / bin / env bash # script shell shell pour vérifier si le numéro d'entrée est un numéro # à l'aide de l'instruction de cas de commutateur Read -p "Veuillez saisir un numéro:" var case $ varin "| * [!0-9] *) echo "$ var n'est pas un nombre" ;; *) echo "$ var est un nombre" ;; ESAC
12345678910#!/ usr / bin / env bash # script shell shell pour vérifier si le numéro d'entrée est un numéro # à l'aide de l'instruction de cas de commutateur Read -p "Veuillez saisir un numéro:" var case $ varin "| * [!0-9] *) echo "$ var n'est pas un nombre" ;; *) echo "$ var est un nombre" ;; esac

Exécutez le script ci-dessus plusieurs fois avec différentes entrées et voyez les résultats:

Première exécution Veuillez entrer un nombre: 12 12 est un nombre 

Vérifiez si le numéro contient +/ /- Panneaux

Dans les méthodes ci-dessus, nous avons vérifié les valeurs entières qui contiennent uniquement 0 à 9 chiffres, un numéro de point flottant qui contient également une fraction des valeurs appelées nombres décimaux. Dans certains cas, un nombre peut également être positif ou négatif. N'importe quel numéro sans préfixe ou avec + est un nombre positif. Le numéro avec - Le préfixe est un nombre négatif.

Mettez à jour l'expression régulière, pour considérer un nombre qui a un +/ /- chante devant lui.

#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est un numéro # et peut être un nombre positif ou négatif Read -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [+ - ]]?[0-9] + $]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi
1234567891011#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée est un numéro # et peut être un nombre positif ou négatif Read -p "Veuillez saisir un nombre:" var si [[$ var = ~ ^ [+ - ]]?[0-9] + $]]; alors echo "$ var est un nombre" else echo "$ var n'est pas un nombre" fi

Exécutez le script ci-dessus avec différentes entrées et vérifiez les résultats.

Première exécution Veuillez entrer un nombre: 12 12 est un numéro de deuxième exécution Veuillez saisir un nombre: -12 -12 est un numéro de troisième exécution Veuillez saisir un nombre: +12 +12 est un nombre 

Vérifiez si un nombre est postif ou négatif

Tout en effectuant des opérations arithmétiques dans les scripts bash, vous devez vérifier les valeurs d'entrée. Le script shell ci-dessous vous aidera à vérifier si le numéro d'entrée est un nombre positif ou un nombre négatif.

#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée # est un nombre positif ou un numéro négatif Read -p "Veuillez saisir un nombre:" Var ## Vérifiez si l'entrée est un nombre valide si [[$ var = ~ ^ [+, -]?[0-9] + $]]; alors ## Vérifiez si l'entrée est un nombre positif ou négatif si [[$ var = ~ ^ [-] [0-9] + $]]; alors echo "$ var est un nombre négatif" else echo "$ var est un nombre positif" fi else echo "$ var n'est pas un nombre" fi
1234567891011121314151617#!/ USR / bin / env-bash # script shell pour vérifier si le numéro d'entrée # est un nombre positif ou un numéro négatif Read -p "Veuillez saisir un numéro:" Var ## Vérifiez si l'entrée est un numéro valide [[$ var = ~ ^ [+, -]?[0-9] + $]]; alors ## Vérifiez si l'entrée est un nombre positif ou négatif si [[$ var = ~ ^ [-] [0-9] + $]]; alors echo "$ var est un nombre négatif" else echo "$ var est un nombre positif" Fielse echo "$ var n'est pas un nombre" fi

Exécutez le script ci-dessus avec des nombres positifs et négatifs. Puis vérifiez les résultats.

Première exécution Veuillez entrer un nombre: 12 12 est un numéro positif deuxième exécution s'il vous plaît entrez un nombre: -12 -12 est un numéro négatif troisième exécution Veuillez saisir un nombre: +12 +12 est un nombre positif 

Conclusion

Un nombre est une collection de chiffres de 0 à 9. N'importe quel nombre peut être un nombre positif ou négatif. Un nombre peut être un numéro entier ou un point flottant. Ce tutoriel vous a aidé à vérifier si la valeur donnée est un nombre ou non dans les scripts bash.