¿Alguien puede explicarme por qué un número con un 0 inicial da este comportamiento divertido?
#!/bin/bash
NUM=016
SUM=$((NUM + 1))
echo "$NUM + 1 = $SUM"
Imprimirá:
016 + 1 = 15
@Squeezy Gracias, pero esa parte ya estaba funcionando. El problema real no era obtener un nombre de archivo con un 0. inicial. Descubría cuál era el nombre de archivo con el número más alto y luego creaba el siguiente en la secuencia, utilizando printf "prefijo-% 03d.tif" $ SUM.
—
DeltaLima
Tenga en cuenta que podría haberlo resuelto usted mismo simplemente haciendo esto
—
Mehrdad el
echo $((016))
Para su información, esto es cierto en muchos lenguajes de programación: C, C ++, Javascript.
—
Paul Draper
printf "%03d\n" 10
es completamente utilizable en bash para obtener un cero a la izquierda para nombres de archivos y demás .