0 votes

Variables vides dans termux' bash

Je veux effectuer un test : si une certaine variable existe, n'est pas vide, et que sa valeur correspond à un répertoire existant, alors "exists" doit être affiché.

J'ai fait ce qui suit :

$ echo $var

$ if [ -d $var ]; then echo "exists"; fi
exists

J'ai obtenu "exist", bien que je n'aie attribué aucune valeur à $var . Pourquoi cela s'est-il produit, et comment puis-je le tester correctement ?

screenshot

3voto

WillW Points 153

Je pense que vous devez mettre $var entre guillemets.

if [ -d "$var" ]; then echo "exists"; fi

0voto

Brian Mains Points 31772

[ -d FICHIER ] Vrai si FICHIER existe et est un répertoire.

Vous voudrez probablement utiliser l'un de ces tests à la place :

[ -z STRING ] Vrai de la longueur si "STRING" est zéro.

[ -n STRING ] ou [ STRING ] Vrai si la longueur de "STRING" est non nulle.

Desde https://www.tldp.org/LDP/abs/html/fto.html

Comment puis-je tester cela correctement ? si une certaine variable existe, est non vide

Cette question est examinée en détail https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash ici.

sa valeur correspond à un répertoire existant

Ce code [[ "${F1AR[@]}" =~ "${NAME##*/}" ]] vérifie si les valeurs correspondent à des répertoires existants. De https://github.com/BuildAPKs/buildAPKs/blob/master/scripts/bash/build/build.github.bash#L59

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X