Você precisa usar $
para o shell expandir temp (conforme seu script é escrito, você está tentando comparar a string literal temp
com o inteiro 0
). Você também deve citá-lo:
x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if [ "$temp" -gt 0 ]
then
echo "inside"
fi
Se você estiver usando o bash, uma maneira melhor de fazer isso seria usar a expressão aritmética do bash da seguinte forma:
x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if ((temp>0)); then
echo "inside"
fi
Dentro da expressão aritmética ((…))
você não precisa de $
para expansão e não pode citar.