2 votes

Comment faire un bash Shell pour une incrémentation avec une variable 0 comme premier caractère.

Comment faire un bash Shell pour l'incrémentation avec 0 comme premier caractère pour l'incrémentation comme :

for (( c=1; c<=75; c++ )) ; do echo 0$c ; done ;

me donne ce :

.../...
07
08
09
010
011
.../...

Mon problème est que j'obtiendrais un double 00 pour le 9 du premier chiffre, j'aimerais donc obtenir ce résultat comme question :

.../...
007
008
009
010
011
.../...

4voto

Arkadiusz Drabczyk Points 2334

Utilisation printf comme ceci :

for (( c=1; c<=75; c++ )) ; do printf "%03d\n" "$c" ; done

1voto

AFH Points 16642

Tandis que Arkadiusz Drabczyk La réponse de M. B. formate la sortie comme vous le souhaitez, mais il y a une autre approche:-

for c in {01..75}; do echo $c; done;   # for two digits
for c in {001..075}; do echo $c; done; # for three digits

Cela inclut les zéros initiaux dans les valeurs assignées de c au lieu de les ajouter à la sortie, et je peux imaginer des circonstances où cela serait plus utile.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X