Android

วิธีการเพิ่มและลดตัวแปรใน bash (ตัวนับ)

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ

สารบัญ:

Anonim

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

การเพิ่มและการลดหมายถึงการเพิ่มหรือลบค่า (ปกติ 1 ) ตามลำดับจากค่าของตัวแปรตัวเลข การขยายเลขคณิตสามารถดำเนินการได้โดยใช้วงเล็บคู่ ((…)) และ $((…)) หรือด้วยคำสั่ง let builtin

ใน Bash มีหลายวิธีในการเพิ่ม / ลดตัวแปร บทความนี้จะอธิบายบางส่วนของพวกเขา

การใช้ + และ - ผู้ประกอบการ

วิธีที่ง่ายที่สุดในการเพิ่ม / ลดตัวแปรคือการใช้เครื่องหมาย + และ -

i=$((i+1)) ((i=i+1)) let "i=i+1"

i=$((i-1)) ((i=i-1)) let "i=i-1"

วิธีนี้ช่วยให้คุณสามารถเพิ่ม / ลดตัวแปรด้วยค่าใด ๆ ที่คุณต้องการ

นี่คือตัวอย่างของการเพิ่มตัวแปรภายในลูป until :

i=0 until do echo i: $i ((i=i+1)) done

i: 0 i: 1 i: 2 i: 3

ตัวดำเนินการ += และ -=

นอกจากตัวดำเนินการพื้นฐานที่อธิบายไว้ข้างต้นแล้ว bash ยังมีตัวดำเนินการที่ได้รับมอบหมาย += และ -= ผู้ประกอบการเหล่านี้จะใช้ในการเพิ่ม / ลดค่าของตัวถูกดำเนินการด้านซ้ายด้วยค่าที่ระบุหลังจากผู้ประกอบการ

((i+=1)) let "i+=1"

((i-=1)) let "i-=1"

ในลูปต่อไปนี้เราจะลดค่าของตัวแปร i ลง 5

i=20 while do echo Number: $i let "i-=5" done

Number: 20 Number: 15 Number: 10 Number: 5

การใช้ ++ และ -- ผู้ประกอบการ

ตัวดำเนินการ ++ และ -- เพิ่มและลดลงตามลำดับตัวถูกดำเนินการโดย 1 และส่งกลับค่า

((i++)) ((++i)) let "i++" let "++i"

((i--)) ((--i)) let "i--" let "--i"

ผู้ประกอบการสามารถนำมาใช้ก่อนหรือหลังตัวถูกดำเนินการ พวกเขาเป็นที่รู้จักกันว่า:

  • การเพิ่มคำนำหน้า: ++i คำนำหน้า: - การเพิ่มขึ้นของ postfix: i++ ลดลงของคำนำหน้า: i--

ตัวดำเนินการส่วนนำหน้าแรกเพิ่ม / ลดตัวดำเนินการโดย 1 จากนั้นส่งคืนค่าใหม่ของตัวดำเนินการ ในทางกลับกันตัวดำเนินการ postfix จะส่งคืนค่าของตัวดำเนินการก่อนที่จะเพิ่ม / ลดลง

ตัวอย่างต่อไปนี้สาธิตวิธีการทำงานของตัวดำเนินการ ++ เมื่อใช้ก่อนและหลังตัวถูกดำเนินการ:

x=5 y=$((x++)) echo x: $x echo y: $y

x: 6 y: 5

x=5 y=$((++x)) echo x: $x echo y: $y

x: 6 y: 6

ด้านล่างเป็นตัวอย่างของวิธีการใช้ตัวเพิ่มส่วนท้ายของ postfix ในสคริปต์ทุบตี:

#!/bin/bash i=0 while true; do if]; then exit 1 fi echo i: $i ((i++)) done

ข้อเสียของการใช้ตัวดำเนินการเหล่านี้คือตัวแปรสามารถเพิ่มหรือลดค่าได้เพียง 1 เท่านั้น

ข้อสรุป

การเพิ่มและลดตัวแปรใน Bash สามารถทำได้หลายวิธี ไม่ว่าคุณจะใช้วิธีใดผลลัพธ์ก็เหมือนกัน

หากคุณมีคำถามหรือข้อเสนอแนะอย่าลังเลที่จะแสดงความคิดเห็น

bash loop terminal