[SHELL] caractère escape pour quotes
gringo
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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,
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:
- Sed double quotes
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
3 réponses
hello
ça fonctionne avec \"
ç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" $
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 :)
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 :)
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" $ $