[KornShell] Tester si une variable est vide!

Tester si une variable est vide! [KornShell] - Shell/Batch - Programmation

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 :(

Reply

Marsh Posté le 02-07-2003 à 10:33:34   

Reply

Marsh Posté le 02-07-2003 à 11:02:05    

C'est pas un truc du genre (pour tester la variable VAR) :

Code :
  1. [ $VAR1 -eq 1 ]


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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)

Reply

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 ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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?

Reply

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 :sarcastic:


---------------
get amaroK plugin
Reply

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.
 
 
 

Reply

Marsh Posté le 02-07-2003 à 14:52:28    

Scoubidoo a écrit :


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.
 


 
ha oui oups, le -f c'est pour tester si un fichier existe :D
 
en fait, en general ce que je fait :
j'initialise toujours mes chaines a "" (chaine vide)
pour tester si la chaine est vide :
 


VAR=""
...
if [ ${VAR} ]; then ...


---------------
get amaroK plugin
Reply

Marsh Posté le 02-07-2003 à 15:35:21    

merci  :hello:  
bah en fait mon problème est résolu avec le -z ça roule.

Reply

Marsh Posté le 10-09-2003 à 23:20:00    

bobuse a écrit :


 
ha oui oups, le -f c'est pour tester si un fichier existe :D
 
en fait, en general ce que je fait :
j'initialise toujours mes chaines a "" (chaine vide)
pour tester si la chaine est vide :
 


VAR=""
...
if [ ${VAR} ]; then ...

 


 
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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed