สร้างแถบความคืบหน้าใน Bash

Srang Thaeb Khwam Khub Hna Ni Bash



เมื่อจำเป็นต้องรอเป็นระยะเวลาหนึ่งระหว่างการดำเนินการสคริปต์ จะเป็นการดีกว่าหากสร้างแถบความคืบหน้าเพื่อแจ้งให้ผู้ใช้รอสักครู่ แถบความคืบหน้าสามารถสร้างขึ้นได้โดยใช้สคริปต์ Bash อย่างง่าย หรือใช้คำสั่งในตัว Linux เช่น “cv”, “dialog” เป็นต้น วิธีการสร้างแถบความคืบหน้าโดยใช้สคริปต์ Bash แสดงอยู่ในบทช่วยสอนนี้

ตัวอย่างต่างๆ ของการสร้างแถบความคืบหน้าใน 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 ใช้แถบความคืบหน้าในโปรแกรมของตนได้