Psst: printf "%03d\n" 10sepenuhnya dapat digunakan dalam bash untuk mendapatkan nol di depan untuk nama file dan semacamnya.
Remeh
@ Squeezy Terima kasih, tetapi bagian itu sudah berfungsi. Masalah sebenarnya adalah tidak mendapatkan nama file dengan awalan 0. Itu mencari tahu nama file dengan angka tertinggi dan kemudian membuat urutan berikutnya, dengan menggunakan printf "prefix-% 03d.tif" $ SUM.
DeltaLima
8
Perhatikan bahwa Anda bisa mengetahuinya sendiri hanya dengan melakukanecho $((016))
Mehrdad
2
FYI, ini benar dalam banyak bahasa pemrograman: C, C ++, Javascript.
Paul Draper
Jawaban:
128
Kesalahpahamannya adalah bahwa angka tidak berarti apa yang Anda harapkan.
Angka nol di depan menunjukkan angka dengan basis 8. Yaitu 016sama dengan 8#16. Jika Anda ingin tetap memimpin nol maka Anda perlu 10#016.
printf "%03d\n" 10
sepenuhnya dapat digunakan dalam bash untuk mendapatkan nol di depan untuk nama file dan semacamnya.echo $((016))
Jawaban:
Kesalahpahamannya adalah bahwa angka tidak berarti apa yang Anda harapkan.
Angka nol di depan menunjukkan angka dengan basis 8. Yaitu
016
sama dengan8#16
. Jika Anda ingin tetap memimpin nol maka Anda perlu10#016
.sumber
Karena:
jika angka dimulai dengan 0, itu dianggap sebagai nilai oktal dan 16 dalam oktal adalah 14 dalam desimal.
sumber