bash
interpretará um número com um zero inicial como octal. O formato não é o problema, a variável $input_day
é o problema.
Você pode removê-los com vários métodos (veja, por exemplo, awk equivalente da função LTRIM em C ).
Leitura adicional:
-
Removendo zeros à esquerda antes de passar a variável para iptables
usa esta sintaxe:$((10#$machinenumber))
, por exemplo, para o seu exemplo:printf -v input_day '%02d' "$((10#$input_day))"
-
Bash: Removendo zeros à esquerda de uma variável
é mais ao ponto:shopt -s extglob printf -v input_day '%02d' ${input_day##+(0)}
A propósito, o exemplo não verifica se a variável está vazia. Mas validar isso corretamente seria outra questão.