[SHELL] caractère escape pour quotes

Fermé
gringo - 27 mai 2010 à 09:08
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 27 mai 2010 à 10:21
Bonjour,

dans un script j'utilise la commande suivante :

eval "echo \"$(cat /path/to/foo)\"" > /path/to/bar

pour exporter le contenu d'un fichier qui contient des variables, problème, dans ce fichier il y a des chaines de caractères entre double quotes.

mais les doubles quotes ne sont pas prises en compte, elle n'apparaissent pas dans le fichier de sortie et c'est problématique.

j'ai essayé de mettre des \ devant les " dans foo, ou de doubler les " mais ça ne marche pas.

comment pourrais-je faire?

Merci,



A voir également:

3 réponses

dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
27 mai 2010 à 09:40
hello
ça fonctionne avec \"
$ cat a3
a = $a
b = $b
c = \"$a $b\"
$ 
$ a=aa
$ b=bb
$ eval "echo \"$(cat a3)\""
a = aa
b = bb
c = "aa bb"
$ 
0
merci de ta réponse, je dois mal m'y prendre ça ne fonctionne pas comme je voudrais.

ex:une ligne de foo

push "route $iplan $netmask"

ensuite
eval "echo \"$(cat /path/to/foo)\"" > /path/to/bar

dans bar j'obtiens :

push route 192.168.0.0 255.255.255.0

pas de double quotes, j'ai essayé
push \"route $iplan $netmask\" dans bar mais ça ne fonctionne pas.

je m'y prends peut etre mal, sans doute même :)
0
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
27 mai 2010 à 09:55
ce sont bien des guillemets ?
$ cat a4
push \"route $iplan $netmask\" 
push \"route2 $iplan $netmask\" 
$ 
$ iplan=xxx
$ netmask=255.255.255.0
$ 
$ eval "echo \"$(cat a4)\""|tee a44
push "route xxx 255.255.255.0" 
push "route2 xxx 255.255.255.0" 
$ 
$ cat a44
push "route xxx 255.255.255.0" 
push "route2 xxx 255.255.255.0" 
$ 
$ 
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 mai 2010 à 10:21
Salut,

Tes doubles quotes sont échappées dans ton fichier texte, lui non ;-(
0