GNU/Linux >> Linux Esercitazione >  >> Linux

Come sfuggire alle citazioni in Shell?

Ho problemi con l'escape dei personaggi in bash. Vorrei evitare le virgolette singole e doppie durante l'esecuzione di un comando con un utente diverso. Ai fini di questa domanda, diciamo che voglio fare eco a quanto segue sullo schermo:

'single quote phrase' "double quote phrase"

Come posso sfuggire a tutti i caratteri speciali, se devo anche passare a un altro utente:

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

Naturalmente, questo non produce il risultato giusto.

Risposta accettata:

Puoi utilizzare la seguente sintassi letterale di stringa:

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

Da man bash

Le parole della forma $'stringa' sono trattate in modo speciale. La parola si espande
in una stringa, con i caratteri con caratteri di escape barra rovesciata sostituiti come specificato da
lo
standard ANSI C. Le sequenze di escape della barra rovesciata, se presenti, vengono decodificate come segue:

          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. Quando è necessaria la doppia virgoletta?

  2. Perché le pagine man di Unix usano i doppi backtick al posto delle doppie virgolette?

  3. Qual è un buon mnemonico per Shell Double vs. Citazioni singole?

  4. Come cambiare la shell in Linux

  5. Procedura:cronologia Bash/shell illimitata?

Come installare Linux Bash Shell su Windows 10

Come modificare una shell utente in Linux

Come installare e utilizzare Nu Shell su Linux

Differenza tra virgolette singole e doppie in Bash Shell

Come utilizzare if-else negli script della shell?

Come eseguire un comando in uno script della shell?