использовать (())
Пример:
A=5 B=6 echo $(($A*$B))
30
Для чисел с плавающей запятой следует использовать awk или bc:
A=5.5 B=6; echo $A \* $B | bc
A=5.5 B=6; echo -e "$A\t$B" | awk '{print $1 * $2}'
Тем не менее, использование awk для всего сценария лучше для ваших нужд:
awk -F: 'BEGIN{ printf "%-50s %-16s %-14s %-15s %-13s %s\n",
"Title", "Author", "Price", "Qty Avail.", "Qty Sold", "Total Sales"}
$1 ~ search {printf "%-50s %-16s %12.2f %13d %10d %10.2f\n",
$1, $2, $3, $4, $5, $3 * $5}' BookDB.txt search=Harry
Или, если вы хотите Perl, который немного короче:
perl -an -F: -s -e 'BEGIN{ printf "%-50s %-16s %-14s %-15s %-13s %s\n", "Title", "Author", "Price", "Qty Avail.", "Qty Sold", "Total Sales"}' \
-e 'printf "%-50s %-16s %12.2f %13d %10d %10.2f\n",@F,$F[2]*$F[4] if /$search/' -- -search=Harry BookDB.txt