Parfois, tout en travaillant sur la ligne de commande Linux, vous voudrez peut-être tester certaines choses comme des valeurs entières, ou si oui ou non un fichier est d'un certain type ? Vous serez heureux de savoir qu'il existe un utilitaire de ligne de commande intégré test qui vous permet de faire la plupart de ces comparaisons et tests.
Dans ce didacticiel, nous aborderons les bases de cet outil à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples de l'article ont été testés sur Ubuntu 16.04 LTS.
Commande de test Linux
Comme déjà mentionné ci-dessus, la commande de test est utilisée pour effectuer des vérifications et des comparaisons. Voici sa syntaxe :
test EXPRESSION
Et voici ce que dit la page de manuel à propos de cet utilitaire :
test - check file types and compare values
Voici quelques exemples sous forme de questions-réponses qui devraient vous donner une bonne idée du fonctionnement de l'outil.
Remarque :Gardez à l'esprit que certaines des options de ligne de commande fournies par le test sont particulièrement utiles lorsqu'elles sont utilisées dans des scripts shell.
Q1. Comment comparer deux chaînes ?
Simple, il vous suffit d'utiliser le signe égal à (=) entre eux. Par exemple :
test howto = forge
Une meilleure façon serait d'écrire quelque chose comme ceci :
test howto = forge && echo "same"
Donc, si les chaînes sont identiques, le mot "same" doit être imprimé dans la sortie, sinon rien ne doit être imprimé.
De même, vous pouvez utiliser le modèle suivant si vous souhaitez tester l'inégalité.
STRING1 != STRING2
Q2. Comment comparer des nombres entiers à l'aide de test ?
C'est aussi très simple - il suffit de les comparer en utilisant '-eq'. Par exemple :
test 5 -eq 7 && echo "same"
Voici une capture d'écran montrant le fonctionnement de cette option de ligne de commande :
De même, vous pouvez utiliser '-ge ' pour tester supérieur ou égal à, '-gt ' pour supérieur à, '-le ' pour inférieur ou égal à, '-lt ' pour moins de, et '-ne ' pour non égal.
Q3. Comment tester/comparer des fichiers à l'aide de test ?
Pour tester lequel des deux fichiers est le plus récent, utilisez '-nt'. Par exemple :
test file1 -nt file2
Voici comment je l'ai testé sur mon système :
D'autres comparaisons de fichiers que vous pouvez effectuer incluent lequel des deux fichiers est le plus ancien (-ot) et si deux fichiers ont les mêmes numéros de périphérique et d'inode (-ef).
Pour vérifier si un fichier donné est un répertoire, utilisez l'option -d de la manière suivante :
test -d [nom de fichier]
Par exemple :
test -d nouveau_rep
Voici quelques autres options de test de type de fichier offertes par la commande 'test' :
Q4. Comment la commande test gère les liens symboliques ?
La commande test déréférence les liens symboliques, bien qu'il y ait quelques exceptions. Voici ce que dit la page de manuel à ce sujet :
Except for -h and -L, all FILE-related tests dereference symboliclinks.
Au cas où vous ne le sauriez pas, -h et -L vérifient si un fichier existe et s'il s'agit d'un lien symbolique - donc leur exclusion a du sens, n'est-ce pas ?
Conclusion
La commande de test offre de nombreuses options, mais d'une manière générale, vous pouvez les classer en 3-4 catégories. Nous avons fourni des exemples pour chaque catégorie. Alors essayez-les et lorsque vous avez terminé, rendez-vous sur la page de manuel de l'utilitaire pour plus d'informations.