Interpretação de backquotes

1

Gostaria de saber qual é a diferença entre esses dois comandos:

echo ' echo 'date' '

echo ' echo \'date\' '

Eu sei que \ é usado para escapar de caracteres, mas não consigo entendê-lo neste contexto particular. Por que não estamos usando

echo \' echo \'date\' \' 

em vez disso, se devemos fugir do caráter?

    
por threaz 21.06.2015 / 15:14

1 resposta

2

Você pode usar a outra expressão para backquotes $(cmd) , que pode ser aninhada. Por outro lado, você pode produzir argumentos internos para backquotes em variáveis e usá-los dentro

echo $(echo 'date')
echo $(echo $(date))

x='date' echo 'echo $x'

Sem a citação de escape \ ', você terá

echo $(echo )date$( )

O shell tentará analisar os argumentos, então tente descobrir os argumentos da sua expressão, por exemplo:

echo \' echo \'date\' \' 
argv[0]="echo", argv[1]="'", argv[2]="echo", argv[3]="'date'", argv[4]="'"

Deixo os outros exemplos para descobrir por si mesmo.

    
por 21.06.2015 / 15:59