Khi cố gắng thực thi một tập lệnh bash đơn giản để tăng số bằng 0 trước 1, số gốc được diễn giải sai.
#!/bin/bash
number=0026
echo $number
echo $((number))
echo $((number+1))
Khi lệnh này được thực thi tôi nhận được kết quả:
0026
22
23
Tại sao điều này xảy ra?
hàng đầu '0' có nghĩa là nó là một số bát phân, bát phân (26) = số thập phân (22) –
sử dụng printf vs echo sẽ giúp bạn phát hiện ra điều này dễ dàng hơn - printf "% d" 0026 –