Per memorizzare l'output di un comando in una variabile, utilizzare :
variable=$( commandFooBar )
Controlla QUI
Stai confondendo due diversi operatori di shell.
Lo >
redirect, reindirizzerà l'output su un file. Quindi, per far funzionare il tuo esempio, potresti usare:
awk 'NR == 2 {print $3}' a.txt > price
cat price # display contents of file named price
Il $
fa riferimento a una variabile, quindi per ottenere il tuo echo
per stampare la variabile, dovresti prima impostarla dall'output del precedente. In questo modo:
price=$(awk 'NR == 2 {print $3}' a.txt)
echo "$price"