Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/08/2007, à 10:10

LPedro

[SEMI-RESOLU][Script KSH]Echappement de '

Bonjour,

Je suis en train de faire un script KSH et je dois affecter à une variable une chaine de caractères contenant des '.

Je fais ainsi :

TEST='test\'test';

Mais cela ne fonctionne pas, cela donne pour erreur:

syntax error at line 23 : `'' unmatched

Merci

Pierre

Dernière modification par LPedro (Le 06/08/2007, à 10:18)

Hors ligne

#2 Le 06/08/2007, à 10:12

sksbir

Re : [SEMI-RESOLU][Script KSH]Echappement de '

bonjour

utilise les " pour encadrer ta variable :

exemple : TEST="test'test"

Hors ligne

#3 Le 06/08/2007, à 10:13

farnsworth

Re : [SEMI-RESOLU][Script KSH]Echappement de '

rajoute un \ devant les ' , ca vaut pour les caracteres speciaux en general: \ $ * " `...

Hors ligne

#4 Le 06/08/2007, à 10:18

LPedro

Re : [SEMI-RESOLU][Script KSH]Echappement de '

Avec les " cela marche mais je dois utiliser les ' car je mes des variables dans ma chaine qui ne doivent pas être interprété.

Le \\ ne marche pas avec les ', enfin de ce que j'ai testé je ne le fais peut-être pas comme il faut.

J'ai trouvé une solution mais elle fait un peu usine a gaz. C'est de faire comme ceci:

TEST='test'\''test';

C'est pas jolie mais cela semble fonctionner.

Merci de votre aide.

Si vous avez une solution plus jolie que la mienne je suis prenneur.


Merci
Pierre

PS: j'avais mal lu le post de "farnsworth". Mettre un \ devant les ' qui encadre ma chaine?

Dernière modification par LPedro (Le 06/08/2007, à 10:19)

Hors ligne

#5 Le 06/08/2007, à 11:33

farnsworth

Re : [SEMI-RESOLU][Script KSH]Echappement de '

vi, en fait tu fais:

xxx[root]/root# test=\'toto\'
xxx[root]/root# echo $test
'toto'

pour ne pas interpreter les variables il suffit de faire pareil avec $:

xxx[root]/root# test=\$toto
xxx[root]/root#echo $test
$toto

Dernière modification par farnsworth (Le 06/08/2007, à 11:35)

Hors ligne

#6 Le 06/08/2007, à 11:35

sksbir

Re : [SEMI-RESOLU][Script KSH]Echappement de '

LPedro a écrit :

Avec les " cela marche mais je dois utiliser les ' car je mes des variables dans ma chaine qui ne doivent pas être interprété....

Tu veux dire que tu mets des $ dans ta chaine et tu ne veux pas que la suite soit interprété comme variable. Donc, il suffit de mettre un \ devant chaque $.

ex: TEST="test'\$VARIABLEPASINTERPRETEE"

Hors ligne

#7 Le 06/08/2007, à 13:40

LPedro

Re : [SEMI-RESOLU][Script KSH]Echappement de '

Ok merci.

Je vais essayer ceci.

Hors ligne