Tester si une variable est vide! [KornShell] - Shell/Batch - Programmation
Marsh Posté le 02-07-2003 à 11:02:05
C'est pas un truc du genre (pour tester la variable VAR) :
Code :
|
Marsh Posté le 02-07-2003 à 12:25:56
nan la tu vérifies que $VAR1 est égal à 1 .... moi je veux savoir si $VAR1 est vide (chaine de car nulle)
Marsh Posté le 02-07-2003 à 14:03:35
non, je vérifie que le contenu de VAR concaténé avec 1 est égal à 1, donc que $VAR est vide ...
Marsh Posté le 02-07-2003 à 14:27:19
tu concatènes comme ça?
Mais cmt le shell fait la différence entre $VAR concaténé de 1 et la variable $VAR1?
Marsh Posté le 02-07-2003 à 14:33:15
bon je connais pas trop ksh mais en bash :
pour pas confondre une variable et une concatenation foireuse, ya les {} , donc ca donne ${VAR}1
pour tester si une variable existe :
if [ -f ${VAR} ]; then ... |
PS : tout ca est tres bien explique dans le man
Marsh Posté le 02-07-2003 à 14:42:05
Merci pour les réponsses.
pour les conditions c pareil ksh et bash.
Sinon le problème n'était pas trop la concaténation, je connais le {} mais ça a pas tilté :-D.
Sinon c'est cette commande if [ -z ${VAR} ] qu'il faut utiliser pour savoir si la longueur de la chaine est nulle. J'ai eu confirmation par le man mais mon truc ne veut tjrs pas marcher. Le problème doit etre ailleurs.
Marsh Posté le 02-07-2003 à 14:52:28
Scoubidoo a écrit : |
ha oui oups, le -f c'est pour tester si un fichier existe
en fait, en general ce que je fait :
j'initialise toujours mes chaines a "" (chaine vide)
pour tester si la chaine est vide :
|
Marsh Posté le 02-07-2003 à 15:35:21
merci
bah en fait mon problème est résolu avec le -z ça roule.
Marsh Posté le 10-09-2003 à 23:20:00
bobuse a écrit :
|
le ksh permet aussi le ${#VAR}
if [ ${#VAR} -eq 0 ]; then
Exprime la longueur de la variable (en caracteres).
Le -z fonctionne aussi mais a la condition que la variable est ete definit avant :
VAR=""
Je rempli ou non la variable
et je teste.
Pour eviter tout cela on peut faire :
if [ "1${VAR}" = "1" ]; then
et cela marche à tous les coups.
Marsh Posté le 02-07-2003 à 10:33:34
Comment on fait ça?
J'ai essayé les options -z -n dans mes conditions ça ne fait rien du tout