<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
(( )) - ออกแบบมาสำหรับจำนวนเต็ม
นอกจากนี้ยังมี [[]] คำสั่งผสม ทุบตี ยังมีไฟล์ - คำสั่งผสม ซึ่งมีประโยชน์สำหรับการดำเนินการกับจำนวนเต็ม สนับสนุนชุดการประเมินเลขคณิตเต็มรูปแบบ หัวข้อที่เราจะกล่าวถึงในบทที่ 34
- ใช้ในการดำเนินการ การทดสอบความจริงทางคณิตศาสตร์. การทดสอบความจริงทางคณิตศาสตร์ให้ผลลัพธ์เป็น จริง หากผลลัพธ์ของการประเมินเลขคณิตไม่เป็นศูนย์
[me@linuxbox ~]$ ถ้า ((1)); แล้วก้อสะท้อนว่า "จริงอยู่" ; fi
มันเป็นความจริง
[me@linuxbox ~]$ ถ้า ((0)); แล้วก้อสะท้อนว่า "จริงอยู่" ; fi
[me@linuxbox ~]$
[me@linuxbox ~]$ ถ้า ((1)); แล้วก้อสะท้อนว่า "จริงอยู่" ; fi
มันเป็นความจริง
[me@linuxbox ~]$ ถ้า ((0)); แล้วก้อสะท้อนว่า "จริงอยู่" ; fi
[me@linuxbox ~]$
การใช้ -, เราสามารถลดความซับซ้อนของ .ได้เล็กน้อย ทดสอบจำนวนเต็ม2 สคริปต์เช่นนี้:
#! / bin / ทุบตี
# test-integer2a: ประเมินค่าของจำนวนเต็ม
อินท์=-5
ถ้า [[ "$INT" =~ ^-?[0-9]+$ ]]; แล้วถ้า ((INT == 0)); แล้วก็
echo "INT เป็นศูนย์"
อื่น
if ((INT < 0)); แล้วก็
echo "INT เป็นค่าลบ"
อื่น
echo "INT เป็นค่าบวก"
fi
if ((((INT % 2)) == 0)); แล้วก็
echo "INT เท่ากัน"
อื่น
echo "INT เป็นเลขคี่"
fi
#! / bin / ทุบตี
# test-integer2a: ประเมินค่าของจำนวนเต็ม
อินท์=-5
ถ้า [[ "$INT" =~ ^-?[0-9]+$ ]]; แล้วถ้า ((INT == 0)); แล้วก็
echo "INT เป็นศูนย์"
อื่น
if ((INT < 0)); แล้วก็
echo "INT เป็นค่าลบ"
อื่น
echo "INT เป็นค่าบวก"
fi
if ((((INT % 2)) == 0)); แล้วก็
echo "INT เท่ากัน"
อื่น
echo "INT เป็นเลขคี่"
fi
echo "INT ไม่ใช่จำนวนเต็ม" >&2 ทางออก 1
fi
echo "INT ไม่ใช่จำนวนเต็ม" >&2 ทางออก 1
fi
สังเกตว่าเราใช้เครื่องหมายน้อยกว่าและมากกว่าและนั่น == ใช้ในการทดสอบความเท่าเทียมกัน นี่เป็นไวยากรณ์ที่ดูเป็นธรรมชาติมากขึ้นสำหรับการทำงานกับจำนวนเต็ม สังเกตด้วยว่าเนื่องจากคำสั่งประสม - เป็นส่วนหนึ่งของไวยากรณ์เชลล์แทนที่จะเป็นคำสั่งทั่วไป และเกี่ยวข้องกับจำนวนเต็มเท่านั้น มันสามารถรับรู้ตัวแปรตามชื่อและไม่ต้องการการขยายเพื่อดำเนินการ เราจะหารือกัน - และการขยายเลขคณิตที่เกี่ยวข้องเพิ่มเติมในบทที่ 34