Bases de Linux et de la ligne de commande
if [ -f "$f" ]; then
echo "found"
fiDans un script shell, dans quel cas la condition du if ci-dessus est-elle vraie ?
- ALorsqu'un fichier ordinaire portant le nom contenu dans la variable f existe
- BLorsqu'un fichier portant le nom contenu dans la variable f existe et que sa taille est supérieure à 0
- CLorsqu'un fichier ou un répertoire portant le nom contenu dans la variable f existe
Afficher la réponse et l'explication
Réponse : A. Lorsqu'un fichier ordinaire portant le nom contenu dans la variable f existe
[ ] est une autre façon d'écrire la commande test : elle renvoie le code de retour 0 (vrai) si la condition est remplie, et if choisit sa branche d'après ce code. -f vérifie qu'« un fichier ordinaire portant ce nom existe » et donne faux pour un répertoire. Pour vérifier seulement l'existence, on utilise -e ; pour vérifier qu'il s'agit d'un répertoire, -d ; et pour vérifier que la taille est supérieure à 0, -s. Un espace est nécessaire après [ et avant ], et placer la variable entre guillemets doubles, comme "$f", permet de tester correctement même les noms qui contiennent des espaces.
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande