ใครสามารถอธิบายให้ฉันฟังได้ว่าเพราะเหตุใดตัวเลขที่มี 0 นำแสดงพฤติกรรมตลกนี้
#!/bin/bash
NUM=016
SUM=$((NUM + 1))
echo "$NUM + 1 = $SUM"
จะพิมพ์:
016 + 1 = 15
@Squeezy ขอบคุณ แต่ส่วนนั้นทำงานอยู่แล้ว ปัญหาที่เกิดขึ้นจริงไม่ได้รับชื่อไฟล์ที่มี 0 นำมันกำลังค้นหาสิ่งที่ชื่อไฟล์เป็นจำนวนสูงสุดแล้วสร้างลำดับต่อไปในลำดับโดยใช้ printf "คำนำหน้า -% 03d.tif" $ SUM
—
DeltaLima
โปรดทราบว่าคุณสามารถหาคำตอบได้ด้วยตัวเองเพียงแค่ทำ
—
เม.ย.
echo $((016))
FYI นี่เป็นเรื่องจริงในภาษาการเขียนโปรแกรมหลายภาษา: C, C ++, Javascript
—
พอลเดรเปอร์
printf "%03d\n" 10
สามารถใช้งานได้อย่างสมบูรณ์ในการทุบตีเพื่อรับค่าศูนย์นำสำหรับชื่อไฟล์และอื่น ๆ