Bash si -e et -s et autres opérateurs de test de fichiers

Bash si -e et -s et autres opérateurs de test de fichiers
Dans les fichiers Linux, les opérateurs de test sont utilisés pour vérifier les attributs associés à un fichier comme: l'auteur du fichier, les droits administratifs et la propriété du fichier, et pour vérifier s'ils sont symboliques ou non. Lorsque nous avons affaire à des fichiers, il devient nécessaire de vérifier leur existence et s'ils contiennent du contenu ou non à cet effet; ou si une déclaration est utilisée avec les opérateurs de test.

Les opérateurs de test de fichiers dans Bash sont également utilisés pour tester les fichiers comme explique son nom. Avec l'aide de ces opérateurs, nous pouvons tester différents aspects d'un fichier comme si ce fichier est écrivatif ou lisible uniquement. Il existe de nombreux opérateurs de test de fichiers et chacun a un rôle et une utilisation différents. Les opérateurs de tests de fichiers nous aident à éviter les erreurs lors des scripts en bash. Pour effectuer cette tâche, nous utilisons une instruction IF-ELSE. La déclaration IF-Else agit comme un outil très utile pour la gestion des erreurs dans les scripts BASH.

Le but de l'opérateur «-e» est de nous dire si un fichier existe dans le répertoire spécifié ou non. L'opérateur «-s» nous dit que le fichier n'est pas une taille nul, ce qui signifie que cet opérateur nous indique si le fichier dans le répertoire spécifié contient des données ou non. D'autres opérateurs sont habitués à traiter avec des fichiers, mais les «-e» et «-s» sont les plus importants et sont fréquemment utilisés.

Comment utiliser les opérateurs de test:

Dans cette illustration, nous essaierons d'utiliser tous les opérateurs de test pour effectuer diverses tâches sur les fichiers.

Exemple non. 1: Utilisation de l'opérateur de texte if -e

Dans cet exemple, nous essaierons d'utiliser l'opérateur de test if -e qui est principalement utilisé pour vérifier si le fichier existe dans un répertoire ou non. Maintenant, nous allons d'abord créer un nouveau fichier.

Linux @ Linux-VirtualBox: ~ $ nano testoperator.shot

Lorsque nous exécuterons la commande ci-dessus, il ouvrira le fichier vide maintenant, nous rédigeons le code dans lequel nous créerons une condition que le fichier «employé.txt ”existe il affichera la commande echo qui contient le message" le fichier existe ". Sinon, il exécutera le message «Le fichier n'existe pas». Le fichier testoperator contiendra le contenu mentionné ci-dessous.

#!/ bac / sh
file = "Employé.SMS"
Si [-e $ file]
alors
écho "le fichier existe"
autre
écho "le fichier n'existe pas"
Fi

Après avoir enregistré le fichier à l'aide de la commande bash, nous exécuterons la commande mentionnée ci-dessous qui exécutera le testoperator.fichier SH.

Linux @ Linux-VirtualBox: ~ $ BASH TESTOPERATOR.shot

Lorsque nous exécutons la commande ci-dessus, il lira le code du fichier testoperator qui exécute et vérifiera le fichier dans le répertoire domestique. Dans ce cas, nous n'avons aucun fichier dans le répertoire, il a donc exécuté la sortie ci-dessous.

Sortir:

le fichier n'existe pas

Maintenant, nous allons d'abord créer un nouveau fichier nommé «Employé.SMS". Ensuite, exécutez à nouveau la commande pour vérifier si elle détectera le fichier ou non. Comme indiqué ci-dessous, cette fois, le fichier existe dans le répertoire domestique.

Maintenant, exécutons à nouveau la commande ci-dessus. Cette fois, il affiche la sortie affichée ci-dessous dans laquelle le message «Fichier existe».

Sortir:

le fichier existe

Exemple non. 2: Utilisation de l'opérateur de texte if -d

Dans cet exemple, nous allons essayer un autre opérateur de test qui est l'opérateur «-d» qui est utilisé pour vérifier si le fichier que nous vérifions est un répertoire ou non. Cette fois, nous créerons un nouveau répertoire que nous avons nommé «Employé», comme on peut le voir dans l'extrait ci-dessous.

Maintenant, nous allons modifier le «testoperator.Fichier sh »dans lequel nous modifierons le nom du fichier« Employé.txt "à" employé ". Ensuite, passant l'opérateur «-d» dans la déclaration if avec le «fichier $» qui sera récupéré. Et modifiant le message, qui sera affiché en sortie, nous enregistrerons le fichier. Maintenant, le «testoperator.Le fichier sh ”contient le contenu suivant.

#!/ bac / sh
file = "employé"
Si [-d $ file]
alors
Echo "l'employé est un répertoire"
autre
Echo "l'employé n'est pas un répertoire"
Fi

Après avoir modifié le «testoperator.sh ”, nous exécuterons la commande bash avec le nom du fichier:

Linux @ Linux-VirtualBox: ~ $ BASH TESTOPERATOR.shot

Lorsque la commande ci-dessus s'exécute, il affichera la sortie illustrée ci-dessous dans laquelle il imprime le message qui est:

Sortir:

L'employé est un répertoire

Exemple non. 3: Utilisation de l'opérateur de texte if -s

Dans cet exemple, nous essaierons d'utiliser l'opérateur «-s» qui est utilisé pour vérifier si le fichier contient du contenu ou non. Pour cela, nous utiliserons le fichier déjà créé que nous avons utilisé dans l'exemple 1 nommé «Employé.SMS". Laissez d'abord modifier le fichier testoperator.SH dans lequel nous passerons l'option «-s» avec le nom de fichier à notre instruction IF et attribuerons le fichier «Employé.SMS". Il modifiera également le message qui sera affiché comme sortie.

#!/ bac / sh
file = "Employé.SMS"
Si [-d $ file]
alors
Echo "Employé.txt est vide "
autre
Echo "Employé.txt n'est pas vide "
Fi

Maintenant, nous allons enregistrer et fermer le fichier «testoperator.sh ”et exécuter la commande mentionnée ci-dessous dans le terminal.

Linux @ Linux-VirtualBox: ~ $ BASH TESTOPERATOR.shot

Lorsque la commande ci-dessus s'exécute, elle exécutera l'instruction ELSE parce que l'employé.txt contient le contenu. Donc, il ignore la commande Echo de la déclaration alors.

Sortir:

employé.txt n'est pas vide

Maintenant, nous supprimerons le contenu de «l'employé.txt ”puis exécuter la commande. Lorsque la commande ci-dessus est à nouveau exécutée, elle affiche le message des instructions puis car elle ne contient aucun contenu. L'exemple ci-dessous est la sortie de la commande que nous avons exécutée après avoir supprimé le contenu du fichier.

Sortir:

employé.txt est vide

Exemple non. 4: Utilisation de l'opérateur de texte if -r

Dans cet exemple, nous implémenterons un autre opérateur de test qui est «-r». Cet opérateur est utilisé pour vérifier si le fichier est lisible pour l'utilisateur ou non. Pour cela, nous modifierons le testoperator.Fichier TXT en remplaçant l'opérateur «-d» par «-r». Il modifiera également le message de sortie qui est si le fichier est lisible. Il affichera le message «Employé.txt est lisible et si le fichier n'est pas lisible, il affichera l'instruction ELSE. Maintenant, le «testoperator.txt ”contient le contenu suivant:

#!/ bac / sh
Employé File = ”.SMS"
Si [-r $ fichier]
alors
Echo «Employé.txt est lisible »
autre
Echo «Employé.TXT est lisible "
Fi

Maintenant, nous allons exécuter la commande ci-dessous pour exécuter le code écrit à l'intérieur.

Linux @ Linux-VirtualBox: ~ $ BASH TESTOPERATOR.shot

Après avoir exécuté la commande ci-dessus, la sortie affichée ci-dessous sera imprimée sur le terminal.

Sortir:

employé.TXT est lisible

Conclusion

Nous avons discuté de la partie la plus importante du système de classement, les opérateurs de test. En travaillant avec des fichiers, les opérateurs de test sont l'utilitaire le plus essentiel fourni par les packages Linux. Après avoir introduit l'objectif des opérateurs de test, nous les avons expliqués en mettant en œuvre ces opérateurs dans divers exemples.