วิธีเพิ่มการคำนวณเป็นสคริปต์ 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 ยังมีโครงสร้างการเขียนโปรแกรมอื่น ๆ เช่น ลูปสำหรับลูป ขณะลูป เงื่อนไข และ ฟังก์ชันและโปรแกรมย่อย