GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza nell'ottenere l'output del comando usando `command`e $(command) in Shell??

Questa domanda ha già risposte qui :Qual è la differenza tra $(stuff) e `stuff`?

(6 risposte)
Chiuso 7 anni fa.

Qual è la differenza nel raccogliere l'output di un comando nello script Shell usando `command` e $(command)? Ad esempio:

# IP1=$(ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}')
# IP2=`ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}'`
# echo $IP1 $IP2
> 192.241.145.112 192.241.145.112

Risposta accettata:

La differenza principale è che i backtick non si annidano:non puoi incorporare un comando backtick all'interno di un altro. (In realtà puoi, ma devi fare il backslash-escape loro, e da lì in poi diventa più complicato.) Questa è stata, credo, la motivazione principale per inventare la nuova sintassi $(command) .

Il $(command) la sintassi fornisce anche una comoda scorciatoia per interpolare il contenuto di un file:$(<filename) è equivalente a $(cat filename) .

Un'altra differenza:$() non è supportato da alcune shell comuni.


Linux
  1. La differenza tra un comando integrato e uno che non lo è?

  2. Output dell'"ultimo" comando?

  3. Come posso eseguire il loop sull'output di un comando di shell?

  4. Qual è la differenza tra &> e >&in bash?

  5. Differenza tra '{}' e {} nel comando find?

8 modi per ottenere aiuto sulla shell di Linux

Linux:qual è la differenza tra `su -` e `su –login`?

3 trucchi per ottenere più comandi in uscita nella stessa riga

Come aggiungere l'output a un file?

Ottieni la prima riga dell'output di un comando di shell

Reindirizzamento dell'output del comando nella finestra mobile