Obtenir une erreur dans le script bash; Expr $ a + 1 expression entière attendue

Obtenir une erreur dans le script bash; Expr $ a + 1 expression entière attendue

Bash est un interprète de ligne de commande populaire qui est couramment utilisé dans les systèmes Linux et Unix car il permet aux utilisateurs d'exécuter des commandes et des scripts dans le terminal. L'une des erreurs les plus courantes que les utilisateurs rencontrent lorsque vous travaillez avec Bash est le "Expr: Expression entière attendue" erreur. Cet article examinera de plus près cette erreur, pourquoi elle se produit et comment la corriger, donc si vous faites face à la même erreur, lisez ce guide.

Quelle est l'erreur «Expr: Integer Expression attendue»

Le «Expr: Expression entière attendue«L'erreur est un message d'erreur généré par le shell bash lorsqu'un utilisateur tente d'exécuter une expression mathématique qui contient des caractères non numériques. L'erreur est généralement accompagnée d'un numéro de ligne qui indique où l'erreur s'est produite dans le script.

Pourquoi l'erreur «Expr: Integer Expression attendue» se produit-elle

Le "Expr: Expression entière attendue » Une erreur se produit lorsque l'utilisateur tente d'effectuer une opération mathématique en utilisant des valeurs non nucères. Par exemple, si un utilisateur tente d'ajouter une chaîne à un nombre, le shell bash générera le "Expr: Expression entière attendue" erreur. Regardons un exemple de code défectueux qui donne cette erreur:

#!/ bac / bash
a = 0
b = 3
tandis que ["$ a" -lt $ b]
faire
Echo $ a
a = "expr $ a + 1"
fait

Ici, le code ci-dessus utilise la boucle while pour poursuivre le processus d'addition qui compare la première variable, c'est-à-dire un dont la valeur est 0, avec la deuxième variable b dont la valeur donnée est 3. La boucle continuera à s'exécuter jusqu'à ce que la condition devienne fausse, c'est-à-dire que A est inférieur à B, l'addition est effectuée en utilisant la commande EXPR. Le message d'erreur «Expr 0 $ + 1: expression entière attendue» indique qu'il y a un problème avec la façon dont le script essaie d'augmenter la valeur de «A». L'erreur est causée par l'utilisation double citation Au lieu de backticks ou du signe du dollar avec des parenthèses pour exécuter la commande «expr»:

Pour corriger l'erreur, le script doit utiliser BackTicks (') Pour exécuter la commande «expr» et évaluer l'expression arithmétique, voici donc le code correct qui utilise les backticks:

#!/ bac / bash
a = 0
b = 3
tandis que ["$ a" -lt $ b]
faire
Echo $ a
a = 'expr $ a + 1'
fait

Ici, je viens de remplacer les doubles citations par les backticks et maintenant la commande expr prend un Comme un entier et effectue l'ajout, la condition dans la boucle while devient fausse:

Conclusion

Le "Expr: Expression entière attendue" L'erreur est une erreur courante qui se produit dans Bash lorsque les utilisateurs tentent d'effectuer des opérations mathématiques sur des valeurs non numériques. Pour corriger cette erreur, il est important de s'assurer que toutes les valeurs de nos expressions mathématiques sont numériques. Ce faisant, nous pouvons éviter cette erreur et nous assurer que nos scripts sont exécutés comme prévu.