เลขคณิตใน Bash

วิธีเพิ่มการคำนวณเป็นสคริปต์ Bash

แม้ว่า Bash เป็นภาษาสคริปต์ แต่ก็มีความสามารถทั้งหมดของภาษาการเขียนโปรแกรมวัตถุประสงค์ทั่วไป ซึ่งรวมถึงฟังก์ชันเลขคณิต มีตัวเลือกหลาย รูปแบบที่ คุณสามารถใช้เพื่อทำให้เกิดการประเมินค่าทางคณิตศาสตร์ของนิพจน์ บางทีหนึ่งที่อ่านได้มากที่สุดคือคำสั่ง let ตัวอย่างเช่น

ปล่อยให้ "m = 4 * 1024"

จะคำนวณ 4 ครั้ง 1024 และกำหนดผลลัพธ์ให้กับตัวแปร "m"

คุณสามารถพิมพ์ผลลัพธ์โดยการเพิ่มคำสั่ง echo :

ปล่อยให้ "m = 4 * 1024" echo $ m

คุณสามารถทดสอบได้จากบรรทัดคำสั่งโดยป้อนรหัสต่อไปนี้:

ปล่อยให้ "m = 4 * 1024"; echo $ m

นอกจากนี้คุณยังสามารถสร้างไฟล์ที่มีคำสั่ง Bash ซึ่งในกรณีนี้คุณควรเพิ่มบรรทัดที่ด้านบนของไฟล์ซึ่งระบุโปรแกรมที่ควรจะเรียกใช้โค้ด ตัวอย่างเช่น:

#! / bin / bash let "m = 4 * 1024" echo $ m

สมมติว่า Bash executable อยู่ใน / bin / bash คุณต้องตั้งค่าสิทธิ์ของไฟล์สคริปต์ของคุณเพื่อให้สามารถใช้งานได้ สมมติว่าชื่อไฟล์สคริปต์คือ script1.sh คุณสามารถตั้งค่าสิทธิ์เพื่อให้ไฟล์สามารถใช้งานได้โดยใช้คำสั่ง:

chmod 777 script1.sh

หลังจากนั้นคุณสามารถดำเนินการได้ด้วยคำสั่ง:

./script1.sh

การดำเนินการเลขคณิตที่มีอยู่คล้ายคลึงกับการเขียนโปรแกรมภาษามาตรฐานเช่น Java และ C. นอกจากการคูณดังภาพข้างบนแล้วคุณยังใช้การเพิ่ม:

ปล่อยให้ "m = a + 7"

หรือลบ:

ปล่อยให้ "m = a - 7"

หรือหมวด:

ปล่อยให้ "m = a / 2"

หรือ modulo (ส่วนที่เหลือหลังจากแบ่งจำนวนเต็ม):

ปล่อยให้ "m = a 100%"

เมื่อดำเนินการกับตัวแปรเดียวกันที่กำหนดผลลัพธ์ไว้คุณสามารถใช้ตัวกำหนดค่าชวเลขเลขคณิตตามมาตรฐานหรือเรียกอีกอย่างว่า ตัวอย่างเช่นสำหรับการเพิ่มเติมเรามี:

ปล่อยให้ "m + = 15"

ซึ่งเท่ากับ "m = m + 15" สำหรับการลบเรามี:

ปล่อยให้ "m - = 3"

ซึ่งเท่ากับ "m = m - 3" สำหรับหมวดเรามี:

ปล่อยให้ "m / = 5"

ซึ่งเท่ากับ "m = m / 5" และสำหรับ modulo เรามี:

ปล่อยให้ "m% = 10"

ซึ่งเท่ากับ "m = m% 10"

นอกจากนี้คุณสามารถใช้ตัวดำเนินการ increment และ decrement :

ปล่อยให้ "m ++"

เทียบเท่ากับ "m = m + 1" และ

ปล่อยให้ "m--"

เท่ากับ "m = m - 1"

และมีตัวดำเนินการ "question mark-colon" ที่เป็น ternary ซึ่งจะส่งกลับค่าสองค่าขึ้นอยู่กับว่าเงื่อนไขที่ระบุเป็นจริงหรือเท็จ ตัวอย่างเช่น

ให้ "k = (m <9)? 0: 1"

ด้านขวาของคำสั่งมอบหมายนี้ประเมินเป็น "0" ถ้าตัวแปร "m" น้อยกว่า 9 มิฉะนั้นจะประเมินเป็น 1 ซึ่งหมายความว่าตัวแปร "k" มีการกำหนด "0" ถ้า "m" น้อย มากกว่า 9 และ "1" มิฉะนั้น

รูปแบบทั่วไปของตัวดำเนินการเครื่องหมายคำถาม - เครื่องหมายคือ:

เงื่อนไข ? value-if-true: value-if-false

เลขทศนิยมใน Bash

โอเปอเรเตอร์ let ทำงานเฉพาะเลขจำนวนเต็มเท่านั้น สำหรับเลขคณิตลอยตัวคุณสามารถใช้ตัวอย่างเช่นเครื่องคิดเลขของ GNU bc ตามที่แสดงในตัวอย่างนี้:

echo "32.0 + 1.4" | ก่อนคริสต์ศักราช

ตัวดำเนินการ "pipe" | "" ผ่านการคำนวณเลขคณิต "32.0 + 1.4" ไปยังเครื่องคิดเลข bc ซึ่งจะส่งกลับจำนวนจริง คำสั่ง echo จะ พิมพ์ผลลัพธ์เป็นเอาต์พุตมาตรฐาน

ไวยากรณ์ทางเลือกสำหรับเลขคณิต

Backticks (หลังเครื่องหมายเดียว) สามารถใช้เพื่อประเมินนิพจน์ทางคณิตศาสตร์เช่นในตัวอย่างนี้:

echo` expr $ m + 18 '

ซึ่งจะเพิ่มค่าของตัวแปร "m" เป็น 18 และพิมพ์ผลลัพธ์

เมื่อต้องการกำหนดค่าการคำนวณให้กับตัวแปรคุณสามารถใช้เครื่องหมายเท่ากับที่ไม่มีช่องว่างรอบ ๆ ตัว:

m = 'expr $ m + 18'

อีกวิธีหนึ่งในการประเมินนิพจน์เลขคณิตคือการใช้วงเล็บสองชั้น ตัวอย่างเช่น:

(m * = 4))

ค่านี้จะเท่ากับสี่เท่าของค่า "m"

นอกเหนือจากการประเมินเลขคณิตแล้วเปลือก Bash ยังมีโครงสร้างการเขียนโปรแกรมอื่น ๆ เช่น ลูปสำหรับลูป ขณะลูป เงื่อนไข และ ฟังก์ชันและโปรแกรมย่อย