GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen dem Abrufen der Befehlsausgabe mit "command" und $(command) in der Shell??

Für diese Frage gibt es hier bereits Antworten :Was ist der Unterschied zwischen $(stuff) und `stuff`?

(6 Antworten)
Vor 7 Jahren geschlossen.

Was ist der Unterschied beim Sammeln einer Befehlsausgabe im Shell-Skript mit `command` und $(command)? Zum Beispiel:

# 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

Akzeptierte Antwort:

Der Hauptunterschied besteht darin, dass Backticks nicht verschachtelt sind:Sie können einen Backtick-Befehl nicht in einen anderen einbetten. (Eigentlich können Sie das, aber Sie müssen sie mit Backslash-Escapezeichen versehen, und von da an wird es haariger.) Das war, glaube ich, die Hauptmotivation für die Entwicklung der neueren Syntax $(command) .

Der $(command) Syntax bietet auch eine praktische Abkürzung zum Interpolieren des Inhalts einer Datei:$(<filename) entspricht $(cat filename) .

Ein weiterer Unterschied:$() wird von einigen gängigen Shells nicht unterstützt.


Linux
  1. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  2. Der Sinn des externen Befehls „cd“?

  3. Ausgabe des Befehls in Shell-Variable speichern?

  4. Was ist der Unterschied zwischen Sudo Su – und Sudo Su –?

  5. Holen Sie sich das Komplement des Ergebnisses eines Ls-Befehls?

Lassen Sie sich mit sort in der Befehlszeile sortieren

8 Möglichkeiten, Hilfe zur Linux-Shell zu erhalten

Der Unterschied zwischen einem eingebauten Befehl und einem, der es nicht ist?

Ausgabe des „letzten“ Befehls?

Wie kann ich die Ausgabe eines Shell-Befehls durchlaufen?

Unterschied zwischen '{}' und {} im Find-Befehl?