GNU/Linux >> Tutoriels Linux >  >> Linux

Comment échapper aux guillemets dans Shell ?

J'ai du mal à échapper des caractères dans bash. J'aimerais échapper aux guillemets simples et doubles lors de l'exécution d'une commande sous un autre utilisateur. Pour les besoins de cette question, disons que je veux faire écho à ce qui suit à l'écran :

'single quote phrase' "double quote phrase"

Comment puis-je échapper à tous les caractères spéciaux, si je dois également changer d'utilisateur :

sudo su USER -c "echo "'single quote phrase' "double quote phrase"""

Bien sûr, cela ne produit pas le bon résultat.

Réponse acceptée :

Vous pouvez utiliser la syntaxe littérale de chaîne suivante :

> echo $''single quote phrase' "double quote phrase"'
'single quote phrase' "double quote phrase"

Depuis man bash

Les mots de la forme $'string' sont traités spécialement. Le mot se développe
en chaîne, avec les caractères d'échappement avec barre oblique inversée remplacés comme spécifié par
la norme
ANSI C. Les séquences d'échappement antislash, si elles sont présentes, sont décodées comme suit :

          a     alert (bell)
          b     backspace
          e
          E     an escape character
          f     form feed
          n     new line
          r     carriage return
          t     horizontal tab
          v     vertical tab
          \     backslash
          '     single quote
          "     double quote
          nnn   the eight-bit character whose value is the octal value nnn (one to three digits)
          xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
          cx    a control-x character

Linux
  1. Quand les guillemets doubles sont-ils nécessaires ?

  2. Pourquoi les pages de manuel Unix utilisent-elles des backticks doubles à la place des guillemets doubles ?

  3. Comment vérifier si un shell est connecté/interactif/batch ?

  4. Comment :Historique Bash/shell illimité ?

  5. Comment s'évader ! en mot de passe ?

Comment installer Linux Bash Shell sur Windows 10

Comment changer un shell d'utilisateurs sous Linux

Comment installer et utiliser Nu Shell sous Linux

Différence entre les guillemets simples et doubles dans Bash Shell

Comment utiliser if-else dans les scripts shell ?

Comment exécuter une commande dans un script shell ?