não consigo perceber o que há de errado com: $ echo ''date`'

não consigo perceber o que há de errado com: $ echo ''date`'

O que acontece quando o seguinte comando é executado? Explique por que e como consertar:

$ echo ‘`date`’

Responder1

Eu estou supondo que você está correndo

echo '`date`'

(observe as aspas simples retas) e esperando ver datea saída de. O shell nunca expande strings entre aspas simples; você deve usar aspas duplas:

echo "`date`"

ou simplesmente solte-os

echo `date`

Tudo isso equivale a

date

porém, além da divisão e globbing da casca (como apontado porStéphane Chazelas), que recolherá os espaços em branco por padrão.

Responder2

Conforme postado, as aspas externas são caracteres Unicode U+2018 e U+2019. Estas NÃO são aspas simples regulares e não têm nenhum significado especial para o shell e são simplesmente repetidas:

$ echo ‘`date`’
‘Fri Apr 7 19:55:15 EEST 2017’
$ 

Dentro dessas aspas estão crases para substituição de comando shell. O datecomando é executado e a saída capturada substitui a datestring.

informação relacionada