ฉันมีสคริปต์ทุบตีที่มี 2 บรรทัดต่อไปนี้:
Hour=$(date +"%H")
Hour=$((10#$Hour))
บรรทัด 2 ทำอะไรได้บ้าง
ฉันมีสคริปต์ทุบตีที่มี 2 บรรทัดต่อไปนี้:
Hour=$(date +"%H")
Hour=$((10#$Hour))
บรรทัด 2 ทำอะไรได้บ้าง
คำตอบ:
การ10#
บอกให้ขยายหมายเลขโดยใช้ฐาน 10:
ค่าคงที่ที่มี 0 นำหน้าจะถูกตีความเป็นตัวเลขฐานแปด เครื่องหมายนำหน้า '0x' หรือ '0X' หมายถึงเลขฐานสิบหก มิฉะนั้นตัวเลขจะอยู่ในรูปแบบ [base #] n โดยที่ตัวเลือกพื้นฐานคือตัวเลขทศนิยมระหว่าง 2 ถึง 64 ที่แสดงถึงฐานเลขคณิตและ n คือตัวเลขในฐานนั้น หากไม่ระบุ base # ระบบจะใช้ฐาน 10 เมื่อระบุ n ตัวเลขที่มากกว่า 9 จะถูกแสดงด้วยตัวอักษรตัวพิมพ์เล็กตัวอักษรตัวพิมพ์ใหญ่ '@' และ '_' ตามลำดับนั้น หากฐานมีค่าน้อยกว่าหรือเท่ากับ 36 ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อาจถูกนำมาใช้แทนกันเพื่อแสดงตัวเลขระหว่าง 10 และ 35
ตัวอย่าง:
ฐาน 16:
$ echo $((16#A))
10
ฐาน 8:
$ echo $((8#12))
10
ฐาน 2:
$ echo $((2#1010))
10
ในขณะที่ steeldriver ชี้ให้เห็นสิ่งนี้มีแนวโน้มว่าจะถูกจัดการเพื่อจัดการศูนย์นำหน้าใด ๆ ที่อาจเกิดขึ้นจากคำสั่ง date แต่ด้วยเวอร์ชันล่าสุดของ GNU วันที่มันสามารถทำได้ง่ายขึ้นโดยใช้: date +%-H
date
) เลขศูนย์สามารถระงับได้ที่แหล่งกำเนิดโดยใช้-
ตัวปรับรูปแบบสไตล์การพิมพ์+%-H