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

Unterschied zwischen ${} und $() in Bash

$(cmd) ersetzt das Ergebnis von cmd als String, wohingegen (cmd; cmd) Führen Sie eine Liste von Befehlen in einem Unterprozess aus.

Wenn Sie die Ausgabe eines oder mehrerer Befehle in eine Variable schreiben möchten, verwenden Sie die Form $( cmd ).

Wenn Sie jedoch mehrere Befehle ausführen und sie als eine einzige Einheit behandeln möchten, verwenden Sie das ()-Formular.

Letzteres ist nützlich, wenn Sie eine Reihe von Befehlen im Hintergrund ausführen möchten:

(git pull; make clean; make all) &

Das sind verschiedene Dinge.

$() wertet einen Ausdruck (Ausführen eines Befehls) wie `` (Backticks)

aus
> (echo ls)
ls

> $(echo ls)
file1  file2

> `echo ls`
file1  file2

> echo $(echo ls)
ls

Sie sind unterschiedlich, aber es gibt eine mnemotechnische Beziehung zwischen ihnen.

(...) ist ein Befehl, der eine neue Subshell startet, in der Shell-Befehle ausgeführt werden.

$(...) ist ein Ausdruck, der eine neue Subshell startet, deren Erweiterung die Standardausgabe ist, die von den ausgeführten Befehlen erzeugt wird.

Dies ähnelt einem anderen Befehl/Ausdruck-Paar in bash :((...)) ist eine arithmetische Anweisung, während $((...)) ist ein arithmetischer Ausdruck.


Linux
  1. Unterschied zwischen den Befehlen „su“ und „su -“ in Linux

  2. Unterschied zwischen ' und ' in der Befehlszeile (bash)??

  3. Unterschied zwischen Eot und Eof?

  4. Unterschied zwischen [0-9], [[:digit:]] und D?

  5. Unterschied zwischen Snat und Maskerade?

Lernen Sie den Unterschied zwischen den Befehlen „su“ und „su -“ in Linux kennen

Der Unterschied zwischen mehr, weniger und den meisten Befehlen

Unterschied zwischen der Definition von Bash-Variablen mit und ohne Export

Unterschied zwischen apt und apt-get erklärt

Erklärt! Der Unterschied zwischen grep-, egrep- und fgrep-Befehlen

Was ist der Unterschied zwischen Kill- und Killall-Befehlen?