A voir également:
- Traitement chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Caractere vide - Guide
17 réponses
bon je viens d'installer et de tester.
si tu fais
ch=
echo $ch
ca te renvois une ligne.
ch="pop"
$ch
ca te renvois
pop
si tu fais
ch=
ch="pop"
echo $pop
ca te renvois
pop
ca que tu voulais savoir?
si tu fais
ch=
echo $ch
ca te renvois une ligne.
ch="pop"
$ch
ca te renvois
pop
si tu fais
ch=
ch="pop"
echo $pop
ca te renvois
pop
ca que tu voulais savoir?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non :( c'est pas ça mon besoin.
voici l'algrithme :
ch =
ch = x,y
si ch conyient des valeurs (x,y...) alors
chaine pleine
sinon
chaine vide (ne contien rien aprés le "=")
fin si
voici l'algrithme :
ch =
ch = x,y
si ch conyient des valeurs (x,y...) alors
chaine pleine
sinon
chaine vide (ne contien rien aprés le "=")
fin si
desole du double post faut que je pense a creer un compte pour éditer.
par un contre bizarre si je fais
x1=
x2=
ch=$x1,$x2
il me sort chaine pleine :s
par un contre bizarre si je fais
x1=
x2=
ch=$x1,$x2
il me sort chaine pleine :s
re c 'est pouet.
et en effet ca me renvois ca :p
je tente d'aider simo mais je découvre en même temps le langage ! A la curiosité :p
et en effet ca me renvois ca :p
je tente d'aider simo mais je découvre en même temps le langage ! A la curiosité :p
Salut,
ch=$x1,$x2 contient la virgule donc elle n'est pas vide
ch=$x1,$x2 contient la virgule donc elle n'est pas vide
lami20j@debserv:~$ x1= lami20j@debserv:~$ x2= lami20j@debserv:~$ ch=$x1$x2 lami20j@debserv:~$ test -z $ch && echo vide vide lami20j@debserv:~$ x1= lami20j@debserv:~$ x2= lami20j@debserv:~$ ch=$x1,$x2 lami20j@debserv:~$ test ! -z $ch && echo pleine pleine lami20j@debserv:~$
J'ai résolu le problème les amis :
en fait mon problème c'est une chaine qui contien une chaine :)
je ne fais le test sur la chaine directement, désolé j'avais oublié de le mentionner
ch="ch = "
ou
ch="ch = x,y"
solution :
echo $ch |awk -F"=" '{if ($2=="") {print "vide"} else {print "pleine"} }'
si vous avez d'autres solutions plus simple n'hésitez pas :)
et merci encore ;)
en fait mon problème c'est une chaine qui contien une chaine :)
je ne fais le test sur la chaine directement, désolé j'avais oublié de le mentionner
ch="ch = "
ou
ch="ch = x,y"
solution :
echo $ch |awk -F"=" '{if ($2=="") {print "vide"} else {print "pleine"} }'
si vous avez d'autres solutions plus simple n'hésitez pas :)
et merci encore ;)
En plus concis avec les methodes de pouet & Lami:
man ksh
Section: Parameter Expansion
test -z ${chaine#ch = } && echo "chaine vide" || echo "chaine pleine" :)
man ksh
Section: Parameter Expansion
${parameter#pattern}
${parameter##pattern}
If the shell pattern matches the beginning of the value of
parameter, then the value of this expansion is the value of the
parameter with the matched portion deleted; otherwise the value
of this parameter is substituted. In the first form the small-
est matching pattern is deleted and in the second form the
largest matching pattern is deleted. When parameter is @, *, or
an array variable with subscript @ or *, the substring operation
is applied to each element in turn.en gros, ${chaine#ch = } prend la variable $chaine, et efface dedans la partie qui correspond à "ch<espace>=<espace>" on test la longueur de la chaine retournée (est-elle egale a zero) si oui (&&) echo "chaine vide" si non (||) echo "chaine pleine"
Avec un if,
test -z ${chaine#ch = } && echo "chaine vide" || echo "chaine pleine" devient if [ -z ${chaine#ch = } ]; then
echo "chaine vide";
else
echo "chaine pleine";
fi;Pour les explications, j'ai éditer mon post, est-ce suffisant ?
ch="chaine1 = "
if test -z ${ch#chaine1 = }
then
echo "chaine vide"
else
echo "chaine pleine"
fi
ça ne marche pas!!
il me renvoie "chaine pleine?!!"
if test -z ${ch#chaine1 = }
then
echo "chaine vide"
else
echo "chaine pleine"
fi
ça ne marche pas!!
il me renvoie "chaine pleine?!!"