Bash : protéger une quote simple, possible ?

Résolu
gnugo -  
 gnugo -
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

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    $ echo 'aa $$ '\'' bb ' 
    aa $$ ' bb 
    $  
    
    3
    1. gnugo
       
      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
  2. Utilisateur anonyme
     
    salut,

    echo "aa \$$ ' bb " 
    aa $$ ' bb
    ;)
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    et aussi
    $ echo "aa "'$$'" ' bb "
    aa $$ ' bb 
    $ 
    0
    1. gnugo
       
      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
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    il y a aussi
    $ printf 'aa $$ \x27 bb\n' 
    aa $$ ' bb  
    $ printf 'aa $$ \x5c bb\n' 
    aa $$ \ bb  
    $ 
    0
    1. gnugo
       
      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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      sinon mettre tout dans un fichier à exécuter pour éviter trop d'échappements imbriqués
      0
    3. gnugo
       
      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