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.