GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi získáním výstupu příkazu pomocí `command` a $(command) v Shell?

Tato otázka zde již obsahuje odpovědi :Jaký je rozdíl mezi $(stuff) a `stuff`?

(6 odpovědí)
Uzavřeno před 7 lety.

Jaký je rozdíl ve shromažďování výstupu příkazu ve skriptu Shell pomocí `command` a $(command)? Například:

# 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

Přijatá odpověď:

Hlavní rozdíl je v tom, že zpětná zaškrtnutí se nevnořují:Nemůžete vložit jeden zpětně zaškrtnutý příkaz do druhého. (Ve skutečnosti můžete, ale musíte jim uniknout zpětným lomítkem a odtamtud to bude chlupatější.) To byla, jak věřím, hlavní motivace pro vymýšlení novější syntaxe $(command) .

$(command) syntaxe také poskytuje pohodlnou zkratku pro interpolaci obsahu souboru:$(<filename) je ekvivalentní $(cat filename) .

Další rozdíl:$() není podporováno některými běžnými shelly.


Linux
  1. Rozdíl mezi vestavěným příkazem a příkazem, který není?

  2. Výstup „posledního“ příkazu?

  3. Jak připojit výstup do souboru?

  1. Jak mohu zacyklit výstup příkazu shellu?

  2. Jaký je rozdíl mezi &> a >&v bash?

  3. Přesměrování výstupu příkazu v dockeru

  1. Seřadit pomocí řazení na příkazovém řádku

  2. Jak přiřadit výstup příkazu proměnné shellu?

  3. Pointa externího příkazu `cd`?