ตัวอย่างต่างๆ ของการสร้างแถบความคืบหน้าใน Bash
วิธีต่างๆ ในการใช้แถบความคืบหน้าใน Bash จะแสดงในส่วนนี้ของบทช่วยสอน
ตัวอย่างที่ 1: ใช้แถบความคืบหน้าอย่างง่ายโดยไม่มีคำสั่งใดๆ
สร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่แสดงแถบความคืบหน้าโดยใช้อักขระ “#” และคำสั่ง “sleep” คำสั่ง 'printf' ใช้ที่นี่เพื่อแสดงแถบความคืบหน้า แถบความคืบหน้าแบ่งออกเป็นสี่ส่วน 25% จะแสดงหลังจาก 1 วินาที 50% จะแสดงหลังจาก 3 วินาที 75% จะแสดงหลังจาก 2 วินาที 100% จะแสดงหลังจาก 1 วินาที
#!/bin/bash
พิมพ์ฉ ' \n รอเคลียร์งาน... \n \n '
#รอ1วิ
นอน 1
#พิมพ์ส่วนแรกของแถบความคืบหน้า
พิมพ์ฉ '[####### ] เสร็จ 25%% \r '
#รอ3วิ
นอน 3
#พิมพ์ส่วนที่สองของแถบความคืบหน้า
พิมพ์ฉ '[############ ] เสร็จ 50%% \r '
#รอ2วินาที
นอน 2
#พิมพ์ส่วนที่สามของแถบความคืบหน้า
พิมพ์ฉ '[############### ] 75%% เสร็จสมบูรณ์ \r '
#รอ1วิ
นอน 1
#พิมพ์แถบความคืบหน้าสุดท้าย
พิมพ์ฉ '[########################] เสร็จสมบูรณ์ 100%% \r '
พิมพ์ฉ ' \n \n งานเสร็จสมบูรณ์ \n \n '
.
เอาต์พุตต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์ 1 วินาที:
เอาต์พุตต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์เป็นเวลา 7 วินาที:
ตัวอย่างที่ 2: ใช้แถบความคืบหน้าโดยใช้คำสั่ง “Pv”
รูปแบบเต็มของคำสั่ง “pv” คือ “pipe viewer” ใช้เพื่อตรวจสอบความคืบหน้าของข้อมูลที่ส่งผ่านไปป์และแสดงแถบความคืบหน้าตามขนาดของข้อมูล คำสั่งนี้ไม่ได้ติดตั้งตามค่าเริ่มต้นในระบบ รันคำสั่งต่อไปนี้เพื่อติดตั้งคำสั่ง “pv” ก่อนฝึกสคริปต์ของตัวอย่างนี้:
$ ซูโด ฉลาด ติดตั้ง พีวีคุณต้องเลือกไฟล์ขนาดใหญ่ที่คัดลอกจากที่หนึ่งไปยังอีกที่หนึ่ง สร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่คัดลอกไฟล์ “test.txt” จากตำแหน่งปัจจุบันไปยังตำแหน่ง “/home/fahmida/temp/” คำสั่ง 'pv' ใช้ที่นี่เพื่อแสดงแถบความคืบหน้า แถบแสดงความคืบหน้าจะแสดงตามขนาดของไฟล์ “test.txt”
#!/bin/bashเสียงสะท้อน 'การคัดลอกไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง'
#รอ2วินาที
นอน 2
#คัดลอกไฟล์ไปยังปลายทาง
แมว ทดสอบ. txt | พีวี -s $ ( สถิติ -ค % s test.txt ) > / บ้าน / ความเข้าใจ / อุณหภูมิ / ทดสอบ. txt
เสียงสะท้อน 'ไฟล์ถูกคัดลอก'
เอาต์พุตต่อไปนี้จะแสดงขึ้นหลังจากดำเนินการสคริปต์เสร็จสิ้น:
ตัวอย่างที่ 3: ใช้แถบความคืบหน้าโดยใช้คำสั่ง 'ไดอะล็อก'
อีกวิธีหนึ่งในการใช้แถบความคืบหน้าใน Bash คือการใช้คำสั่ง 'dialog' คำสั่งนี้สามารถใช้เพื่อแสดงแถบความคืบหน้าที่ดูดีในเทอร์มินัล วิดเจ็ตหลายประเภทสามารถแสดงได้โดยใช้แถบความคืบหน้านี้ งานของแถบความคืบหน้าที่แสดงโดยคำสั่งนี้สามารถควบคุมได้โดยสคริปต์ Bash แถบความคืบหน้านี้ไม่ได้ถูกติดตั้งในระบบตามค่าเริ่มต้น รันคำสั่งต่อไปนี้เพื่อติดตั้งแถบความคืบหน้านี้ในระบบ:
$ ซูโด ฉลาด ติดตั้ง กล่องโต้ตอบสร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่แสดงแถบความคืบหน้าโดยใช้คำสั่ง 'โต้ตอบ' งานของการคัดลอกไฟล์ “/etc/passwd” ไปยังตำแหน่ง “/home/fahmida/tempdir” จะแสดงขึ้นโดยใช้แถบแสดงความคืบหน้า แถบความคืบหน้าแบ่งออกเป็นห้าส่วน แต่ละส่วนจะแสดงหลังจาก 2 วินาที ตัวเลือก –title ใช้ในคำสั่ง “dialog” เพื่อแสดงชื่อเรื่องของแถบความคืบหน้า ตัวเลือก –gauge ใช้ในคำสั่ง “dialog” เพื่อแสดงแถบความคืบหน้าที่มีความสูง 10 บรรทัดและความกว้าง 100 อักขระ ข้อความ “กำลังรอให้งานเสร็จสิ้น” จะแสดงเหนือแถบความคืบหน้า
#!/bin/bash#เริ่มต้นเคาน์เตอร์
current_pos = 0
(
#Define การวนซ้ำไม่สิ้นสุด
สำหรับ ( ( ;; ) )
ทำ
แมว <<สอศ
ตัวคั่น
$current_pos
#แสดงค่าตัวนับปัจจุบัน
cp /etc/passwd ถึง /home/fahmida/tempdir ( $current_pos%):
ตัวคั่น
อฟ
#เพิ่มเคาน์เตอร์ 20
( ( current_pos+= ยี่สิบ ) )
#ยุติจากลูปเมื่อค่าตัวนับมากกว่า 100
[ $current_pos -gt 100 ] && หยุดพัก
#รอ 2 วินาทีหลังจากเพิ่มขึ้นแต่ละครั้ง
นอน 2
เสร็จแล้ว
) | กล่องโต้ตอบ --ชื่อ 'กำลังคัดลอกไฟล์...' --วัด 'รอเคลียร์งาน' 10 100 0
เอาต์พุตต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์ 6 วินาที:
เอาต์พุตต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์ 10 วินาที:
บทสรุป
วิธีต่างๆ ในการพัฒนาแถบความคืบหน้าโดยใช้สคริปต์ Bash แสดงอยู่ในบทช่วยสอนนี้ เพื่อช่วยให้ผู้ใช้ Bash ใช้แถบความคืบหน้าในโปรแกรมของตนได้