Bash : protéger une quote simple, possible ?

Résolu/Fermé
gnugo - Modifié par gnugo le 17/09/2012 à 09:30
 gnugo - 18 sept. 2012 à 15:14
Bonjour,
Encore une fois je sollicite votre aide...

Peut-on protéger une simple quote en bash ?
exemple (qui ne fonctionne pas) echo 'aa $$ \' bb '
(Résultat attendu : aa $$ ' bb)


Dans un script je voudrais passer une variable texte en paramètre à une commande sur un serveur distant par ssh
mais entre les guillemets à protéger, les backquotes et les dollars je m'en sors plus
d'où l'idée de ssh serv "commande '$argument' "
Mais il me faut protéger les " ' " qui peuvent se trouver dans $argument

Je vous remercie d'avance
A voir également:

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
17 sept. 2012 à 11:19
hello
$ echo 'aa $$ '\'' bb ' 
aa $$ ' bb 
$  
3
Merci
la difficulté est de remplacer tous les ' par '\''
${variable//\'/\'\\\'\'} ne marche pas car le 2eme motif est bizarrement interprété

J'ai pu contourner avec q="'"; ${variable//\'/$q\\$q$q}
Merci bien en tout cas :)
0
Utilisateur anonyme
17 sept. 2012 à 12:16
salut,

echo "aa \$$ ' bb " 
aa $$ ' bb
;)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
17 sept. 2012 à 12:27
et aussi
$ echo "aa "'$$'" ' bb "
aa $$ ' bb 
$ 
0
Je voulais justement éviter les " ", et mettre tout en ' , d'où ma question sur le moyen de les protéger

avec " ", je dois surprotéger les backquotes, $ et " à chaque niveau de ssh, c'est exponentiel (ssh s1 "ssh s2 \"ssh s3 \\\" ssh s4 \\\\\\\" ssh s5 \\\\\\\\\\\\\\\" echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bonjour cela fait 5\\\\\\\\\\\\\...$....
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 17/09/2012 à 13:34
il y a aussi
$ printf 'aa $$ \x27 bb\n' 
aa $$ ' bb  
$ printf 'aa $$ \x5c bb\n' 
aa $$ \ bb  
$ 
0
remplacer toutes les quotes pas \x27 oui
Mais ça ne marche qu'avec printf
Je passe ma chaine de caractères à d'autres scripts/programmes en argument, je ne cherchais pas juste à l'afficher
Mais dans ce contexte là oui ce serait une solution!
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 sept. 2012 à 08:20
sinon mettre tout dans un fichier à exécuter pour éviter trop d'échappements imbriqués
0
Mais le contenu est dynamique et fonction du serveur qui exécute le script ;)

Mais j'ai maintenant la solution avec les ' c'est propre
0