Sua pergunta é um pouco ambígua. Se você quiser o próximo número inteiro, seja qual for a parte decimal, abaixo está uma resposta com sh
:
echo $((${i%.*} + 1))
Se você quiser o próximo número inteiro se a parte decimal for maior que 0, aqui está uma resposta com sh
:
[ -n "${i##*.*[1-9]*}" ]
echo $(( ${i%.*} + $? ))
(o primeiro teste sai com 1 se i
tiver algum dígito diferente de 0 após o ponto decimal, senão sai com 0; $?
contém o valor de saída)
Mesma ideia com bash
, que é um pouco mais legível IMHO:
[[ "$i" != *.*[1-9]* ]]
echo $(( ${i%.*} + $? ))
Usando o POSIX expr
, compatível com qualquer shell:
expr "${i%.*}" + \( "${i##*.*[1-9]*}" = "" \)