Como suprimir 0 exclusão em operações aritméticas do script bash?

1

Como exemplo, aqui está o código:

#!/bin/bash
s=00
until [ $s -eq 60 ] 
do
    let "s += 1"
    echo $s
done

$ s será 1, 2, 3 etc, mas não 01, 02, 03 etc. Como posso evitar essa exclusão de 0? Então, eu preciso de $ s para 01-09, depois para 10, 11, etc.

    
por Airee 19.04.2013 / 07:37

1 resposta

3

Adicione os zeros ao imprimi-lo.

#!/usr/bin/env bash
s=0
until ((++s == 60 )); do
    printf '%02d\n' "$s"
done

Os números com zeros à esquerda serão tratados como octal, portanto valores como 08 e 09 falharão. Portanto, é melhor operar os números sem os zeros à esquerda e apenas adicionar os zeros à esquerda quando você precisar imprimi-los.

Veja também o link

    
por geirha 19.04.2013 / 07:57