BASH (ซึ่งย่อมาจาก Bourne Again Shell) เป็นภาษาสคริปต์ที่ใช้โดยระบบปฏิบัติการลีนุกซ์และยูนิกซ์มากที่สุด
คุณสามารถเรียกใช้คำสั่ง BASH ภายในหน้าต่างเทอร์มินัลได้จากเมนูอื่นหรือคุณสามารถเพิ่มคำสั่งลงในไฟล์ข้อความเพื่อสร้างสคริปต์เชลล์ได้
สิ่งที่ยอดเยี่ยมเกี่ยวกับการเขียนสคริปต์ของเชลล์คือคุณสามารถเรียกใช้สคริปต์เหล่านี้ได้อีกครั้งและอีกครั้ง ตัวอย่างเช่นคุณต้องเพิ่มผู้ใช้ลงในระบบตั้งค่าสิทธิ์และจัดการสภาพแวดล้อมเริ่มต้น คุณสามารถเขียนคำสั่งลงบนแผ่นกระดาษและเรียกใช้งานตามที่คุณเพิ่มผู้ใช้ใหม่หรือคุณสามารถเขียนสคริปต์เพียงครั้งเดียวและเพิ่งส่งผ่านพารามิเตอร์ลงในสคริปต์นั้น
การเขียนสคริปต์ภาษาต่างๆเช่น BASH มีการเขียนโปรแกรมที่คล้ายกันเป็นภาษาอื่น ๆ ตัวอย่างเช่นคุณสามารถใช้พารามิเตอร์การนำเข้าเพื่อรับข้อมูลจากแป้นพิมพ์และเก็บไว้เป็นตัวแปร จากนั้นคุณจะได้รับสคริปต์เพื่อดำเนินการบางอย่างตามค่าของพารามิเตอร์อินพุท
ส่วนสำคัญของการเขียนโปรแกรมและภาษาสคริปต์คือความสามารถในการเรียกใช้โค้ดชิ้นเดียวกันซ้ำ ๆ กัน
มีหลายวิธีที่จะทำซ้ำรหัส (หรือที่เรียกว่าลูป) ในคู่มือนี้คุณจะเห็นวิธีการเขียนลูป "for"
สำหรับ loop ซ้ำบางส่วนของรหัสซ้ำแล้วซ้ำอีก พวกเขามีประโยชน์เพื่อให้ชุดของคำสั่งสามารถทำงานต่อไปได้จนกว่าจะมีเงื่อนไขเฉพาะที่จะได้พบหลังจากที่พวกเขาจะหยุด
ในคู่มือนี้คุณจะได้รับห้าวิธีในการใช้ลูปสำหรับภายในสคริปต์ BASH
ก่อนที่จะเริ่มต้นใช้งาน
ก่อนที่คุณจะเริ่มต้นใช้งานตัวอย่างลูปสำหรับลูปคุณต้องเปิดหน้าต่างเทอร์มินัลและทำตามขั้นตอนต่อไปนี้:
-
เข้าสู่ สคริปต์ mkdir (เรียนรู้เพิ่มเติมเกี่ยวกับ mkdir ที่นี่)
-
เข้าสู่ สคริปต์ cd (ซึ่งจะเปลี่ยนไดเรกทอรีไปที่ สคริปต์ ).
-
เข้าสู่ examplen.sh nano (ในกรณีที่ n เป็นตัวอย่างที่คุณกำลังทำงานอยู่)
-
ป้อนสคริปต์
-
กด CTRL + O เพื่อบันทึกและ CTRL + X เพื่อออก
-
วิ่ง bash examplen.sh (อีกครั้งด้วย n เป็นตัวอย่างที่คุณกำลังทำงานด้วย)
วิธีวนผ่านรายการ
#! / bin / bashfor number ใน 1 2 3 4 5doecho $ numberdoneexit 0
วิธี BASH ในการใช้ลูป "for" มีความแตกต่างกันไปบ้างกับการเขียนโปรแกรมและภาษาสคริปต์ส่วนใหญ่จะจัดการกับ "for" loops ลองถอดสคริปต์ลง ใน BASH "for" loop ทั้งหมดข้อความระหว่าง ทำ และ เสร็จแล้ว จะดำเนินการหนึ่งครั้งสำหรับทุกรายการในรายการ ในตัวอย่างข้างต้นรายการคือทุกสิ่งทุกอย่างที่อยู่หลังคำ ใน (เช่น 1 2 3 4 5) แต่ละครั้งที่วนซ้ำ iterates ค่าถัดไปในรายการถูกแทรกลงในตัวแปรที่ระบุหลังคำ "สำหรับ" . ในลูปข้างต้นเรียกว่าตัวแปร จำนวน . คำสั่ง echo ถูกใช้เพื่อแสดงข้อมูลไปยังหน้าจอ ดังนั้นตัวอย่างนี้ใช้ตัวเลขตั้งแต่ 1 ถึง 5 และส่งผลให้ทีละหน้าไปยังหน้าจอ: ปัญหาเกี่ยวกับตัวอย่างข้างต้นก็คือถ้าคุณต้องการประมวลผลรายการที่ใหญ่กว่า (พูด 1 ถึง 500) จะใช้เวลานานในการพิมพ์ตัวเลขทั้งหมดในครั้งแรก ซึ่งจะนำเราไปสู่ตัวอย่างที่สองซึ่งจะแสดงวิธีการระบุจุดเริ่มต้นและจุดสิ้นสุด: #! / bin / bashfor number ใน {1..10} doecho "$ number" doneexit 0
กฎมีพื้นฐานเหมือนกัน ค่าหลังจากคำว่า " ใน" ทำรายการเพื่อย้ำผ่านและแต่ละค่าในรายการจะอยู่ในตัวแปร (เช่นจำนวน) และทุกครั้งที่ลูป iterates งบระหว่าง ทำ และ เสร็จแล้ว จะดำเนินการ ความแตกต่างหลักคือวิธีการสร้างรายการ วงเล็บปีกกา {} จะหมายถึงช่วงและช่วงในกรณีนี้คือ 1 ถึง 10 (จุดทั้งสองจุดจะแยกจุดเริ่มต้นและจุดสิ้นสุดของช่วง) ตัวอย่างนี้จึงวิ่งผ่านแต่ละหมายเลขระหว่าง 1 ถึง 10 และแสดงผลหมายเลขไปยังหน้าจอดังนี้: ลูปเดียวกันสามารถเขียนได้เช่นนี้โดยมีไวยากรณ์เหมือนกับตัวอย่างแรก: สำหรับเลขที่ 1 2 3 4 5 6 7 8 9 10 ตัวอย่างก่อนหน้าแสดงวิธีการวนรอบระหว่างจุดเริ่มต้นและจุดสิ้นสุดดังนั้นตอนนี้เราจะดูวิธีข้ามตัวเลขในช่วง ลองจินตนาการว่าคุณต้องการวนรอบตั้งแต่ 0 ถึง 100 แต่แสดงเฉพาะทุกหมายเลขที่สิบ สคริปต์ต่อไปนี้แสดงวิธีการทำเพียงว่า: #! / bin / bashfor number ใน {0..100..10} doecho "$ number" doneexit 0
กฎมีพื้นฐานเหมือนกัน มีรายการตัวแปรและชุดคำสั่งที่จะทำระหว่าง ทำ และ เสร็จแล้ว . รายการในครั้งนี้มีลักษณะดังนี้: {0..100..10} หมายเลขแรกคือ 0 และเลขท้ายคือ 100 หมายเลขที่สาม (10) คือจำนวนรายการในรายการที่จะข้าม ตัวอย่างข้างต้นแสดงผลลัพธ์ต่อไปนี้: วิธี BASH ในการเขียนลูปจะแปลกเล็กน้อยเมื่อเทียบกับภาษาโปรแกรมอื่น ๆ อย่างไรก็ตามคุณสามารถเขียนลูปสำหรับรูปแบบที่คล้ายคลึงกับภาษาการเขียนโปรแกรม C เช่นนี้ # / bin / bashfor (จำนวน = 1; จำนวน <100; จำนวน ++)) {if (($ number% 5 == 0)) thenecho "จำนวน $ หารด้วย 5" fi}
ลูปเริ่มต้นด้วยการตั้งค่าตัวแปรจำนวนเป็น 1 (จำนวน = 1 ) ลูปจะทำให้ iterating ในขณะที่ค่าของจำนวนน้อยกว่า 100 ( จำนวน <100 ) คุณค่าของ จำนวน เปลี่ยนแปลงโดยการเพิ่ม 1 เมื่อทำซ้ำแต่ละครั้ง ( จำนวน ++ ). ทุกอย่างระหว่างวงเล็บปีกกาจะดำเนินการผ่านการวนซ้ำแต่ละรอบ บิตระหว่างวงเล็บจะตรวจสอบค่าของ a จำนวน หารด้วย 5 และเปรียบเทียบส่วนที่เหลือเป็น 0 ถ้าส่วนที่เหลือเป็น 0 จำนวนนั้นจะหารด้วย 5 และจะแสดงบนหน้าจอ ตัวอย่างเช่น: ถ้าคุณต้องการเปลี่ยนขนาดขั้นตอนของการทำซ้ำคุณสามารถแก้ไขหมายเลข + + + ส่วนที่จะ จำนวน = จำนวน + 2 , จำนวน = จำนวน 5 + , หรือ จำนวน = จำนวน + 10 เป็นต้น นี้สามารถลดลงไป จำนวน + = 2 หรือ จำนวน + = 5 . สำหรับลูปสามารถทำมากกว่าการวนซ้ำรายการของตัวเลข คุณสามารถใช้ผลลัพธ์ของคำสั่งอื่น ๆ ตามรายการได้ ตัวอย่างต่อไปนี้แสดงวิธีการแปลงไฟล์เสียงจาก MP3 เป็น WAV: #! / bin / ทุบตีสำหรับไฟล์ ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" done
รายการในตัวอย่างนี้คือทุกไฟล์ที่มีนามสกุล .MP3 ในโฟลเดอร์ปัจจุบันและตัวแปรคือ a ไฟล์ . MPG แปลงไฟล์ MP3 เป็น WAV อย่างไรก็ตามคุณอาจจำเป็นต้องติดตั้งโดยใช้ตัวจัดการแพคเกจของคุณก่อน
วิธีวนรอบระหว่างจุดเริ่มต้นและจุดสิ้นสุด
วิธีการข้ามเบอร์ในช่วง
ค้นหาแบบวนซ้ำมากขึ้น
ตัวอย่างการปฏิบัติ