Comment vérifier si un fichier ou un répertoire existe dans un script Bash Shell

Vérifier si un fichier ou un répertoire existe à partir d'un script Bash

Bash est utilisé pour automatiser les commandes exécutées régulièrement sous Linux. Les commandes destinées aux opérations sur les fichiers/répertoires sont assez fréquemment utilisées, et généralement, avant d'exécuter une telle commande, nous devons vérifier si le fichier ou le répertoire en particulier existe. Voyons comment effectuer cette vérification.

Syntaxe et utilisation

Des dossiers

Pour vérifier si un fichier existe, utilisez la syntaxe suivante :

[ -F  ]

L'expression [ -F ] renvoie 0, c'est-à-dire succès si existe, et s'il n'existe pas, il renvoie un statut non nul. En règle générale, cela est utilisé comme une condition dans le si déclaration.

si [ -f ] alors fi

Pour annuler la valeur renvoyée, précéder simplement le -F avec un opérateur de négation (!).

si [ ! -f ] puis fi

Dans ce cas, la condition sera satisfaite si le fichier n'existe pas, car le statut non nul renvoyé (faux) sera annulé et considéré comme 0 (vrai).

Notez que si le fichier à vérifier n'existe pas dans le répertoire courant et existe dans un autre répertoire, le chemin complet du fichier doit être mentionné au lieu du seul nom de fichier.

Annuaires

Une syntaxe similaire à celle utilisée pour la vérification des fichiers est utilisée pour la vérification des répertoires.

[ -ré  ]

Semblable à l'instruction pour les fichiers, cette instruction renvoie 0, c'est-à-dire la réussite, si le répertoire existe, et un état différent de zéro, c'est-à-dire que l'état d'échec est renvoyé s'il n'existe pas. Ceci est également couramment utilisé dans un si condition de déclaration.

si [ -d ] alors fi

Pour annuler le statut renvoyé, faites précéder le -ré avec un opérateur de négation (!).

si [ ! -d ] puis fi

La condition satisfera (état 0) dans ce cas si le répertoire n'existe pas, et échouera (état non nul) si le répertoire existe.

Comme mentionné précédemment pour les fichiers, si le répertoire à vérifier existe à un autre emplacement et non dans le répertoire actuel, le chemin du répertoire complet doit être saisi au lieu du nom du répertoire uniquement.

La syntaxe des crochets ( [...] ) utilisé ici est en fait une commande Linux appelée test. Les options -F et -ré sont les caractéristiques de cette commande. Pour plus d'informations, consultez la page de manuel de test ( test de l'homme ).

Vérifier à partir d'un script Bash

Dans les exemples ci-dessus, nous avons utilisé les syntaxes directement sur le terminal. Le shell chaque fois qu'il rencontre une boucle ou une instruction conditionnelle (si dans notre cas), il continue l'invite et permet à l'utilisateur d'entrer le continuer le bloc.

Les mêmes syntaxes peuvent être utilisées à l'intérieur d'un script Bash.

le #!/bin/bash au début spécifie l'interpréteur à utiliser lors de l'exécution du fichier. Bien que Bash soit le shell le plus couramment utilisé de nos jours, certains utilisateurs préfèrent des shells comme zsh, qui doit être spécifié à la place de bash au début de ce fichier.

Pour donner des autorisations d'exécution pour ce fichier, exécutez :

chmod +x test.sh

Enfin, pour exécuter le fichier, Cours:

./test.sh