พบสคริปต์ที่น่าสนใจนี้ซึ่งวาดหิมะภายในเทอร์มินัลของคุณ อย่างไรก็ตาม....
ฉันต้องการมีตัวเลือกให้พิมพ์ 'q' เมื่อใดก็ได้เพื่อออกจากลูป
นี่คือสิ่งที่ฉันมี
LINES=$(บรรทัด tput)
COLUMNS=$(tput cols)
ประกาศ -A เกล็ดหิมะ
ประกาศ -A lastflakes
แจ่มใส
ฟังก์ชัน move_flake() {
ฉัน = "$ 1"
ถ้า [ "${เกล็ดหิมะ[$i]}" = "" ] || [ "${เกล็ดหิมะ[$i]}" = "$LINES" ]; แล้ว
เกล็ดหิมะ[$i]=0
อื่น
ถ้า [ "${lastflakes[$i]}" != "" ]; แล้ว
printf "\033[%s;%sH \033[1;1H " ${lastflakes[$i]} $i
ไฟ
ไฟ
printf "\033[%s;%sH*\033[1;1H" ${เกล็ดหิมะ[$i]} $i
เกล็ดสุดท้าย[$i]=${เกล็ดหิมะ[$i]}
เกล็ดหิมะ[$i]=$((${เกล็ดหิมะ[$i]}+1))
}
ในขณะที่ :
ทำ
i=$(($RANDOM % $คอลัมน์))
move_flake $i
สำหรับ x ใน "${!lastflakes[@]}"
ทำ
move_flake "$x"
เสร็จแล้ว
นอน 0.1
เสร็จแล้ว
นี่คือที่ฉันได้ลองเพิ่ม ;
echo "พิมพ์ 'q' เพื่อออก"
ขณะอ่าน -n1 -r -p "ต้องการออกจากสคริปต์หรือไม่"
ทำ
ถ้า [[ $REPLY == q ]];
แล้ว
หยุดพัก;
อื่น
#อะไรก็ตาม
ไฟ
เสร็จแล้ว
เพิ่มไว้ในฟังก์ชัน แต่ขอเฉพาะ 'q' ที่จุดเริ่มต้นเท่านั้น
จากนั้นพยายามเพิ่มสคริปต์จริงภายในเลิกวนซ้ำและดึงเกล็ดหิมะเท่านั้นแล้วถามอีกครั้งว่าฉันต้องการออกหรือไม่ ....
มีความคิดอย่างไรที่จะทำให้งานนี้?