วิธีที่ดีที่สุดวิธีหนึ่งในการทำให้ชีวิตของคุณง่ายขึ้นด้วยเทคโนโลยี ไม่ว่าจะเป็นที่ทำงานหรือที่บ้าน คือการควบคุมระบบอัตโนมัติ งานอัตโนมัติด้วยสคริปต์และงานตามกำหนดเวลาเป็นวิธีที่แน่นอนในการประหยัดเวลา อาการปวดหัว และความพยายาม อย่างไรก็ตาม ไม่ชัดเจนในทันทีว่าจะเริ่มต้นที่ไหน ที่นี่เราจะแสดงวิธีใช้ Bash for
คำสั่ง loop ซึ่งเป็นหนึ่งในเครื่องมือพื้นฐานในระบบอัตโนมัติด้านไอทีเพื่อให้คุณเริ่มต้นได้
การตั้งค่าสภาพแวดล้อมการทดสอบของคุณ
สิ่งแรกที่คุณต้องมีคือตัวอย่างการทำงานของ Bash นี่คือเชลล์เริ่มต้นใน Terminal ใน Linux, Unix, BSD และ macOS (ยกเว้นกรณีที่คุณใช้ zsh) คุณสามารถตรวจสอบว่าคุณใช้เชลล์ใดอยู่โดยพิมพ์คำสั่งต่อไปนี้ลงในเทอร์มินัล:
echo $SHELL
ควรพิมพ์เปลือกที่คุณใช้อยู่ ผลลัพธ์ของฉันบอกว่าฉันกำลังใช้ /bin/bash
ซึ่งเป็นสิ่งที่ฉันกำลังมองหา
คุณจะต้องใช้โปรแกรมแก้ไขข้อความด้วย - ตัวแก้ไขใดก็ตามที่คุณเลือกก็ใช้ได้ ฉันใช้ Nano ในเทอร์มินัล แต่คุณสามารถใช้ Vim หรือ Emacs ในเทอร์มินัลหรืออย่างอื่นเช่น Gedit, Kate หรือ Sublime ใน GUI ได้อย่างง่ายดาย
สร้างไฟล์สคริปต์ในโปรแกรมแก้ไขข้อความของคุณ โดยใช้ touch
คำสั่งหรือเพียงแค่พิมพ์ชื่อโปรแกรมแก้ไขข้อความและชื่อไฟล์ที่คุณต้องการสร้าง สำหรับฉัน ฉันแค่พิมพ์ nano for-loop-test.sh
, และฉันจะเป็นสีทอง
The Bash For Loop:พื้นฐาน
For loop ใน Bash บอกให้เชลล์วนซ้ำช่วงของอ็อบเจ็กต์ที่ระบุและรันคำสั่งที่ระบุบนอ็อบเจ็กต์เหล่านั้น นั่นหมายความว่าอย่างไร? ฉันคิดว่ามันง่ายกว่าที่จะแสดงให้คุณเห็น นี่เป็นการวนรอบขั้นพื้นฐาน
บรรทัดแรก for i in 1 2 3 4 5
ระบุตัวแปร “i” และช่วง 1 ถึง 5 ซึ่งอาจเป็นลำดับตัวเลขที่ซับซ้อนมากขึ้น หรืออาจเป็นรายการไฟล์ที่ป้อนที่นั่นหรือไดเรกทอรี
บิตถัดไปคือการจัดรูปแบบพื้นฐาน โดยมีคำสั่งที่จะดำเนินการในส่วนแท็บ do
และ done
เป็นส่วนหนึ่งของไวยากรณ์ For loop และต้องอยู่ที่นั่น หากฉันเรียกใช้สคริปต์นี้ ฉันจะได้รับผลลัพธ์ดังนี้:
Test round 1 Test round 2 Test round 3 Test round 4 Test round 5
คุณสามารถดูได้ว่าตัวแปรนั้นเข้ามาได้อย่างไร ช่วยให้คุณระบุแต่ละอ็อบเจ็กต์ในช่วงอินพุตนั้นได้ ในการระบุช่วงจำนวนที่ซับซ้อนกว่านี้เล็กน้อย คุณสามารถใช้วงเล็บปีกกาเพื่อตั้งค่าเหล่านั้นได้ หากต้องการระบุช่วงเดียวกันจากช่วงก่อนหน้า คุณสามารถเปลี่ยน for $i in 1 2 3 4 5
เพื่อ for $i in {1..5}
. ผลลัพธ์ก็จะเท่าเดิม คุณสามารถนับได้ด้วยตัวเลขบางตัว นี่คือการนับตัวเลขทั้งหมดด้วย 3 ระหว่าง 0 ถึง 27
สิ่งที่พบได้ทั่วไปในสคริปต์คือการรันคำสั่งเฉพาะกับไฟล์จำนวนมาก ถ้าฉันต้องการใช้ cat
ในกลุ่มไฟล์ในไดเร็กทอรี ฉันทำได้โดยเปลี่ยนสคริปต์ดังต่อไปนี้
การดำเนินการนี้จะพิมพ์ผลลัพธ์ของไฟล์ทั้งหมดใน "test-directory" ไปยังเทอร์มินัล
ผลลัพธ์จะมีลักษณะดังนี้ในกรณีของฉัน
คุณสามารถเริ่มรับแนวคิดว่า For loop มีประสิทธิภาพเพียงใด นี่เป็นเพียงการขีดข่วนพื้นผิวเท่านั้น และคุณสามารถรวมหลายคำสั่งเข้าด้วยกันระหว่าง do
และ done
และคุณยังสามารถใช้คำสั่งแบบมีเงื่อนไขเพื่อทำให้คำสั่งซับซ้อนขึ้นได้
อย่าลืมตรวจสอบบทความ Bash อื่นๆ ของเรา เช่น Bash Tips and Tricks เพื่อทำงานอย่างชาญฉลาดยิ่งขึ้นใน Terminal และอักขระพิเศษบางตัวของ Bash ที่คุณควรรู้