Похоже, вы пытаетесь сделать следующее:
if result=$(grep -A4 " Apple " a.txt);
then
echo "$result"|tail -1|awk '{printf("%f",$4)}' >>out
else
echo 0 >>out
fi
Основная проблема с вашим кодом заключается в том, что при использовании канала код выхода всегда из последней команды в вашем случае хвост -1
, который всегда 0
, следовательно, условие if всегда истинно.
Другая проблема с вашим кодом - awk '{printf ("% f", $ 4)}' >> out
, где awk
получает ввод?