Чи може хтось мені пояснити, чому число з провідним 0 дає таку смішну поведінку?
#!/bin/bash
NUM=016
SUM=$((NUM + 1))
echo "$NUM + 1 = $SUM"
Буде надруковано:
016 + 1 = 15
@Squeezy Спасибі, але ця частина вже працювала. Справжньою проблемою було не отримання імені файлу з провідним 0. Вияснення, яке ім'я файлу було з найбільшою кількістю, а потім створення наступної послідовності, використовуючи printf "prefix-% 03d.tif" $ SUM.
—
DeltaLima
Зауважте, що ви могли самі це зрозуміти, роблячи це
—
Мехрдад
echo $((016))
FYI, це справедливо для багатьох мов програмування: C, C ++, Javascript.
—
Пол Дрейпер
printf "%03d\n" 10
повністю використовується в баші, щоб отримати провідний нуль для імен файлів і подібних.