Может кто-нибудь объяснить мне, почему число с ведущим 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))
К вашему сведению, это верно для многих языков программирования: C, C ++, Javascript.
—
Пол Дрэйпер
printf "%03d\n" 10
полностью используется в bash для получения начального нуля для имен файлов и тому подобного.