tester si une variable (multivaluée) est vide [bash] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 19-02-2011 à 17:49:46
Juste pour préciser, j'ai trouvé une solution moche mais qui marche :
Code :
|
C'est moche pour deux raisons :
Si il y a mieux (ce dont je ne doute pas une seconde ) je suis preneur
Marsh Posté le 24-03-2011 à 16:49:00
Un truc du genre :
VAR=$(grep -c [[:alpha:]]<<<${mavariable}) |
Marsh Posté le 25-03-2011 à 15:00:05
Personnellement je comprends pas vraiment ce que signifie une variable "multivaluée".
Une variable est vide ou pas.. Tu parles d'une variable sur plusieurs lignes ? Dans ce cas ce n'est qu'un concept puisqu'un retour à la ligne est finalement un caractère...
D'ailleurs j'ai tapé variable multivaluée sur google pour satisfaire ma soif inextinguible de connaissances, et on tombe sur ce topic...
Pour ma part cà me parait évident que le test suivant
if [ ! -z "$ma_variable" ];
fonctionne.
Peux tu me donner le message d'erreur ?
J'ai essayé d'illustrer un peu ton test en donnant à une variable la valeur d'un fichier multiligne, mais je ne pense pas que c'est ce que tu appelles une variable "multivaluée".
Code :
|
Code :
|
Marsh Posté le 19-02-2011 à 11:12:20
Hello,
J'ai un problème de test de variable dans bash qui devrait être tout bidon mais qui va pas comme je veux...
Ma variable peut être, selon les cas, multivaluée ou non. Des fois c'est de la forme :
et des fois :
voire, quand ça plante , vide...
Normalement, un test classique fonctionne :
ou alors :
Ça marche très bien si la variable est vide ou monovaluée mais dès qu'elle est multivaluée, ça me met une erreur puisque l'argument n'est pas de la forme attendue. C'est pas bloquant mais c'est pas propre... Je ne trouve pas de solution à ce problème dans les différents tuto que j'ai lu (par ex http://tldp.org/LDP/abs/html/).
J'ai aussi essayé :
ça marche pas non plus (c'était évident mais bon... faut tester quand même )
un "for i" sur la variable n'est pas sensible au problème de multivaluation mais si elle est vide on n'entre tout simplement pas dans la boucle donc ça ne marche pas non plus.
Je suis sur que la solution est toute simple mais je suis pas développeur (je suis même pas informaticien, du moins pas de formation... ) du coup je suis à court d'idées sur ce truc. Quelqu'un aurait un solution?
Merci
a+
---------------
J'ai cherché à chercher mais je n'ai rien pu trouver et pourtant, j'avais trouvé.