Você não postou a mensagem de erro, mas com base na sua fonte, eu vejo problemas na maneira como a variável "temp" é desreferenciada. Você precisa usar chaves em vez de parênteses e, finalmente, finalizar com aspas duplas.
Tente isso.
temp=$(swapon -s | tail -n 1 | awk '{print $3}' )
SWAP_WARN=$(echo "${temp}*.20" | bc)
SWAP_CRIT=$(echo "${temp}*.40" | bc)