<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
การอ่านไฟล์ด้วยลูป
ในขณะที่และจนสามารถประมวลผลอินพุตมาตรฐานได้ ซึ่งช่วยให้สามารถประมวลผลไฟล์ด้วย while และ until loops ในตัวอย่างต่อไปนี้ เราจะแสดงเนื้อหาของไฟล์ distros.txt ที่ใช้ในบทก่อนหน้า:
#! / bin / ทุบตี
# while-read: อ่านบรรทัดจากไฟล์ขณะอ่าน distro version release; ทำ
printf "Distro: %s\tเวอร์ชัน: %s\tเผยแพร่: %s\n" \
$ distro \
$รุ่น \
$ปล่อยเสร็จแล้ว < distros.txt
#! / bin / ทุบตี
# while-read: อ่านบรรทัดจากไฟล์ขณะอ่าน distro version release; ทำ
printf "Distro: %s\tเวอร์ชัน: %s\tเผยแพร่: %s\n" \
$ distro \
$รุ่น \
$ปล่อยเสร็จแล้ว < distros.txt
ในการเปลี่ยนเส้นทางไฟล์ไปยังลูป เราวางโอเปอเรเตอร์การเปลี่ยนเส้นทางหลัง ทำ คำแถลง. ลูปจะใช้ อ่าน เพื่อป้อนฟิลด์จากไฟล์ที่เปลี่ยนเส้นทาง NS อ่าน คำสั่งจะออกหลังจากอ่านแต่ละบรรทัด โดยมีสถานะการออกเป็นศูนย์จนกว่าจะถึงจุดสิ้นสุดไฟล์ เมื่อถึงจุดนั้น มันจะออกด้วยสถานะการออกที่ไม่ใช่ศูนย์ ดังนั้นจึงเป็นการสิ้นสุดการวนซ้ำ นอกจากนี้ยังสามารถไพพ์อินพุตมาตรฐานเป็นลูปได้:
#! / bin / ทุบตี
# while-read2: อ่านบรรทัดจากไฟล์
sort -k 1,1 -k 2n distros.txt | ในขณะที่อ่านรุ่น distro; do printf "Distro: %s\tVersion: %s\tReleased: %s\n" \
$ distro \
$รุ่น \
$ปล่อย
ทำ
#! / bin / ทุบตี
# while-read2: อ่านบรรทัดจากไฟล์
sort -k 1,1 -k 2n distros.txt | ในขณะที่อ่านรุ่น distro; do printf "Distro: %s\tVersion: %s\tReleased: %s\n" \
$ distro \
$รุ่น \
$ปล่อย
ทำ
ที่นี่เราใช้ผลลัพธ์ของ ประเภท คำสั่งและแสดงกระแสข้อความ อย่างไรก็ตาม สิ่งสำคัญที่ต้องจำไว้คือ เนื่องจากไพพ์จะดำเนินการลูปในเชลล์ย่อย ตัวแปรใดๆ ที่สร้างหรือกำหนดภายในลูปจะหายไปเมื่อลูปสิ้นสุด