Bash Escape Quotes

Bash Escape Quotes
A citação é usada para desativar o significado especial dos personagens especiais. Existem muitos metacaracters da Shell que têm significados específicos. Mas quando você precisa representar esses personagens, será necessário remover o significado especial desses personagens e é feito citando o personagem. Você pode fazer esta tarefa usando três maneiras. Estes são escapar de personagens, citações únicas e aspas duplas que são explicados com exemplos neste tutorial.

Escape personagens:

O personagem Bash Escape é definido por barragem não citada (\). Preserva o valor literal do personagem seguido por este símbolo. Normalmente, o símbolo $ é usado no Bash para representar qualquer variável definida. Mas se você usar fuga na frente de $ símbolo então o significado de $ será ignorado e imprimirá o nome da variável em vez do valor. Execute os seguintes comandos para mostrar os efeitos do personagem de fuga (\).

Exemplo 1:

O significado de 'PWDO comando é exibir o caminho atual do diretório de trabalho. No exemplo seguinte, o valor do 'PWD'O comando é armazenado em uma variável. Quando \ O símbolo é usado na frente de $ símbolo, então o nome da variável imprimirá em vez do valor.

$ pd = 'pwd'
$ echo $ PD
$ echo \ $ pd

Saída:

Citações únicas:

Quando você inclui caracteres ou variável com uma única citação ('), ela representa o valor literal dos caracteres. Portanto, o valor de qualquer variável não pode ser lido por citação única e uma única cotação não pode ser usada dentro de outras citações únicas. Alguns exemplos de citação única são mostrados abaixo.

Exemplo#2:

Neste exemplo, um valor de string é armazenado na variável $ var. 'eco'Comando imprime o valor dessa variável sem qualquer cotação. Quando a variável é citada por citação única, o nome da variável será imprimido como saída. Se a barra de barriga (\) for usada antes da citação única, o valor da variável será impresso com uma única cotação.

$ var = 'linguagem de script de bash'
$ echo $ var
$ echo '$ var'
$ echo \ '$ var \'

Saída:

Exemplo#3:

Às vezes é necessário imprimir uma única cotação dentro de uma string. Uma única string citada não pode conter outra única citação dentro da string. Você pode fazer essa tarefa adicionando barragem na frente da citação única. No exemplo seguinte, uma única citação de não A palavra é impressa usando barragem.

$ var = $ 'eu não gosto deste livro'
$ echo $ var

Saída:

Exemplo#4:

Backticks não é suportado por citações únicas. Neste exemplo, o valor do calendário é armazenado em uma variável, $ var. O valor dessa variável será imprime corretamente eco comando se você não usar nenhuma cotação. Mas quando a variável é citada por citação única no comando de eco, ele imprime o nome da variável em vez do valor da variável.

$ var = 'cal'
$ echo $ var
$ echo '$ var'

Saída:

Aspas duplas

Double Quotes (”) é outra maneira de preservar o valor literal dos caracteres. O sinal do dólar ($) e os personagens de backsticks (') podem manter seu significado especial dentro de citações duplas. O backslash (\) também pode manter seu valor quando é usado seguindo backticks, citação dupla e barragem. Alguns exemplos de citações duplas são mostradas abaixo.

Exemplo#5:

Uma limitação da citação única é que ela não pode analisar o valor da variável dentro da citação. Neste exemplo, um valor de string é atribuído a uma variável nomeada, $ var e imprima o valor dessa variável usando a cotação dupla no comando de eco.

$ var = 'linguagem de script do lado do servidor'
$ eco "php é um $ var"

Saída:

Exemplo#6:

Qualquer saída de comando pode ser impressa usando citações duplas. No exemplo seguinte, data O comando é fechado por citação dupla e impressa usando citações duplas.

$ eco "hoje é 'data'"

Saída:

Exemplo#7:

Você não pode usar citações duplas dentro de outra citação dupla para atribuir qualquer valor de string. Se você deseja imprimir uma cotação dupla na saída, precisará usar a barra de barragem (\) com a string. De uma maneira semelhante, você pode imprimir backticks (') e barragem (\) caracteres na saída usando a barra de barra. Neste exemplo, o primeiro comando imprimirá “500” com a citação dupla, o segundo comando imprimirá 'data' com backticks e o terceiro comando imprimirá “\ php \” com barra.

$ echo "O preço é \" 500 \ """"
$ echo ""\ 'date \' comando é usado para o valor da data""
$ echo ""\\ php \\ é uma linguagem de programação""

Saída:

Exemplo#8:

Strings com calotas duplas e citadas duplas funcionam iguais quando são usadas juntas sem nenhum espaço em um comando de impressão. Mas se você usar algum espaço entre os valores da string, eles tratarão como valor separado e imprimirão separadamente. Neste exemplo, três strings de duas citadas são usadas no comando Print Printf. Essas cordas se combinam e imprimem como uma única corda quando você executará o comando. Duas strings de citação única e uma citada dupla são usadas no segundo comando de impressão e funcionará como o primeiro comando de impressão. Três strings de duas citadas com espaço são usadas no terceiro comando de impressão e cada valor da string funcionará como uma string separada e imprimirá cada string em uma nova linha.

$ printf '%s \ n' ""ubuntu"" ""linuxmint"" ""fedora""
$ printf '%s \ n' 'ubuntu' ""linuxmint"" 'fedora'
$ printf '%s \ n' ""ubuntu"" ""linuxmint"" ""fedora""

Saída:

Exemplo#9:

Crie um arquivo bash chamado escapar.sh, e adicione o seguinte código. Neste exemplo, dados de texto com cotações duplas e sinal de dólar é usado. É mostrado anteriormente que a citação dupla e o símbolo do dólar não podem imprimir em uma string fechada por citações duplas. Então, a barra de barra. Aqui, um loop é usado para iterar a variável de string, $ string e imprima cada palavra do texto que é armazenado nessa variável.

#!/BIN/BASH
#Initialize a variável com caráter especial
String = ""O preço deste \"" livro \ ""é \ $ 50""
#Itere e imprima cada palavra da variável string
para palavra em $ string
fazer
eco $ word
feito

Execute o script.

$ Bash Escape.sh

Saída:

Conclusão

Espero que este tutorial o ajude a usar personagens de escape, citação única e cotação dupla com base nos requisitos do seu script.

"