Ce guide montre comment utiliser la commande de test bash.
Commande de test
La commande de test prend un EXPRESSION comme argument. Après avoir calculé l'expression, le test renvoie une valeur à la variable bash «$?". Si la valeur est 0, alors l'évaluation de l'expression était vraie. Si la valeur est 1, alors l'évaluation de l'expression était fausse.
Il y a deux syntaxes pour utiliser la commande de test.
$ Expression de test
$ [Expression]
Notez que dans le cas de «[», il y a un espace aux deux extrémités du EXPRESSION.
Test de test
Voici un court exemple du fonctionnement de la commande de test. Nous vérifierons si 1 est égal à 2. Si c'est vrai, alors la sortie sera «vraie». Sinon, la sortie sera «fausse».
$ test 1 -eq 2 && echo «true» || écho «faux»
Faisons-le.
Si la partie test est vraie, alors la première commande echo s'exécutera. Sinon, la deuxième commande echo exécutera.
La même commande peut être exprimée en utilisant «[».
$ [1 -eq 2] && echo «true» || écho «faux»
Expression
L'expression est ce qui donne à la commande de test son vrai pouvoir. Le test peut utiliser des chaînes, des fichiers et des entiers à titre de comparaison. Voici une liste rapide de tous les formats d'expression de test disponibles.
Chaîne
En programmation, une chaîne est un ensemble de caractères qui sont généralement utilisés pour représenter le texte. Par exemple, «Hello World» dans la commande Echo suivante est traité comme une chaîne.
$ Echo «Hello World."
La commande de test prend en charge les expressions de chaîne suivantes.
Essayons ces expressions.
$ [-n «Hello World»] && echo «true» || écho «faux»
$ [-Z «Hello World»] && echo «true» || écho «faux»
$ ["Hello World" != «Hello World»] && écho «true» || écho «faux»
$ ["Hello World" = "Hello World"] && echo "true" || écho «faux»
Entier
Le tout premier exemple de ce guide démontre la comparaison des entiers. Il existe plus de façons de comparer les entiers.
Mettons ces expressions en action.
$ [5 -eq 10] && echo «true» || écho «faux»
$ [5 -gt 2] && echo «true» || écho «faux»
$ [4 -le 5] && echo «true» || écho «faux»
Déposer
Les fichiers peuvent également faire partie de l'expression. Voici la liste des expressions de fichiers prises en charge.
Le reste des expressions de fichiers prises en charge est liée à une seule propriété d'un seul fichier.
Jetons un coup d'œil à quelques exemples.
$ [-x / usr / bin / bash] && echo $?
$ [-s / bin / bash] && echo $?
$ [-r / bin] && echo $?
$ [-e / hello_world] && echo "true" || écho "faux"
Implémentation de test dans les scripts bash
Jusqu'à présent, nous avons démontré comment utiliser la commande de test pour déterminer si une certaine condition est vraie ou fausse. Nous pouvons implémenter cela dans des scripts bash pour prendre des décisions utiles.
Jetez un œil au court script suivant.
#!/ bac / bash
si [$ (whoami) = root]; alors
écho à la «racine»
autre
écho «pas root»
Fi
Ici, l'instruction IF vérifiera si la condition est vraie ou fausse. En utilisant la commande de test, nous pouvons facilement obtenir la valeur booléenne.
Exécutez le script avec et sans privilège racine.
$ ./factice.shot
$ sudo ./factice.shot
C'est une simple démonstration de déclaration IF-Else. N'hésitez pas à consulter les instructions Bash If-Else pour d'autres applications approfondies.
Dernières pensées
La commande de test est simple mais puissante. Ce guide explique et démontre diverses façons d'utiliser le test. La liste complète de toutes les expressions prises en charge est disponible sur la page de l'homme.
$ MAN TEST
Happy Computing!