/ / Qual è la differenza tra -> risultato = $ (ls -l) (o) -> risultato = `ls -l` - linux, bash, variabili

Qual è la differenza tra -> risultato = $ (ls -l) (o) -> risultato = `ls -l` - linux, bash, variabili

Ho eseguito entrambi i comandi ed entrambi sembrano fare la stessa cosa, è vero o è successo qualcosa che non vedo?

Questi due sembrano fare la stessa cosa:

result=$(ls -l)
result=`ls -l`

risposte:

4 per risposta № 1

Si prega di controllare http://nixcraft.com/shell-scripting/13288-loop-input-backticks-vs-differences.html#post19804 per una bella spiegazione di questo caso.


1 per risposta № 2

La pagina man di bash dice quanto segue, sotto Sostituzione comando.

Quando la forma di backquote vecchio stile di sostituzione è usato, backslash conserva il suo significato letterale tranne quando seguito da $, `, o. Il primo righello non preceduto da a backslash termina il comando sostituzione. Quando si usa il $ (comando) modulo, tutti i caratteri tra le parentesi compongono il comando; nessuno è trattato in modo speciale.

Le sostituzioni di comando possono essere annidate. Per nidificare quando si usa il righello forma, sfuggire alle backquote interne con backslash.

Copie online della pagina man di sh: