ตัวอย่าง #1:
สร้างไฟล์ bash ด้วยสคริปต์ต่อไปนี้ เมื่อคุณจะเรียกใช้สคริปต์ สคริปต์จะดำเนินต่อไปจนกว่าผู้ใช้จะกดปุ่มใดๆ สคริปต์จะรอการป้อนข้อมูลของผู้ใช้ทุกๆ 3 วินาที และหากผู้ใช้ไม่กดปุ่มใดๆ ก็จะพิมพ์ข้อความ รอการกดแป้น .
#!/bin/bash
โยนออก 'กดปุ่มใดก็ได้เพื่อดำเนินการต่อ'
ในขณะที่ [ จริง ];ทำ
อ่าน -NS 3 -NS 1
ถ้า [ $?=0 ];แล้ว
ทางออก;
อื่น
โยนออก 'รอการกดแป้น'
เป็น
เสร็จแล้ว
เรียกใช้สคริปต์
$ทุบตีคีย์1.sh
เอาท์พุท:
ตัวอย่าง #2:
สร้างไฟล์ bash ด้วยสคริปต์ต่อไปนี้ ตัวอย่างนี้ใช้ infinite while loop ซึ่งจะสิ้นสุดเมื่อผู้ใช้กด 'q' หากผู้ใช้กดปุ่มใด ๆ โดยไม่มี 'q' ค่าของตัวแปรตัวนับจะเพิ่มขึ้น 1 และพิมพ์ค่า
#!/bin/bashโยนออก 'กด 'q' เพื่อออก'
นับ=0
ในขณะที่::ทำ
อ่าน -NS 1ถึง<&1
ถ้า [[ $ k= q]];แล้ว
printf 'NSออกจากโปรแกรมNS'
หยุดพัก
อื่น
((นับ=$count+1))
printf 'NSย้ำเพื่อ$countครั้งNS'
โยนออก 'กด 'q' เพื่อออก'
เป็น
เสร็จแล้ว
เรียกใช้สคริปต์
$ทุบตีkey2.sh
เอาท์พุท:
ตัวอย่าง #3:
สร้างไฟล์ทุบตีด้วยสคริปต์ต่อไปนี้ที่จะทำงานประเภทต่างๆ ตามคีย์ที่ผู้ใช้กด หากผู้ใช้กด '1' ระบบจะเพิ่มอาร์กิวเมนต์บรรทัดคำสั่งสองรายการและพิมพ์ หากผู้ใช้กด '2' ระบบจะลบอาร์กิวเมนต์บรรทัดคำสั่งสองรายการและพิมพ์ สคริปต์จะทำงานอย่างต่อเนื่องจนกว่าผู้ใช้จะกด '3'
#!/bin/bashv1=$ 1
v2=$ 2
ในขณะที่:
ทำ
โยนออก '1. ส่วนที่เพิ่มเข้าไป'
โยนออก '2. การลบ'
โยนออก '3. ล้มเลิก'
โยนออก -NS 'ประเภท 1 หรือ 2 หรือ 3 :'
อ่าน -NS 1 -NS สิบห้าถึง
printf 'NS'
กรณี $ ใน
1* ) โยนออก '$v1+$v2=$(($v1+$v2)) ';;
2* ) โยนออก '$v1-$v2=$(($v1-$v2)) ';;
3* ) ทางออก 0;;
* ) โยนออก 'ลองอีกครั้ง.';;
esac
เสร็จแล้ว
เรียกใช้สคริปต์ด้วยค่าอาร์กิวเมนต์ตัวเลขสองค่า
$ทุบตีkey3.sh35 สิบห้าเอาท์พุท:
ตัวอย่าง #4:
สร้างไฟล์ bash ด้วยสคริปต์ต่อไปนี้ สคริปต์จะสิ้นสุดลงเมื่อผู้ใช้กดปุ่ม ESC สคริปต์นี้จะพิมพ์คีย์ที่ผู้ใช้กดจนกว่าจะกดปุ่ม ESC
#!/bin/bashข้อมูลผู้ใช้=''
โยนออก 'กดปุ่ม ESC เพื่อออก'
#อ่านอักษรตัวเดียว
ในขณะที่ อ่าน -NS -n1กุญแจ
ทำ
# ถ้าอินพุต == ปุ่ม ESC
ถ้า [[ $key== $'และ' ]];
แล้ว
หยุดพัก;
เป็น
# เพิ่มคีย์ให้กับตัวแปรที่กดโดยผู้ใช้
อินพุตผู้ใช้+=$key
เสร็จแล้ว
printf 'NSคุณได้พิมพ์:$userinputNS'
เรียกใช้สคริปต์
$ทุบตีkey4.shเอาท์พุท:
ตัวอย่าง #5:
สร้างไฟล์ทุบตีด้วยรหัสต่อไปนี้ซึ่งจะรอให้คีย์ ENTER ยุติสคริปต์ สคริปต์จะใช้ชื่อเซิร์ฟเวอร์เป็นอินพุตและจะพยายาม ping เซิร์ฟเวอร์ทุกๆ 2 วินาที หากคำสั่ง ping ได้รับการตอบสนองจากเซิร์ฟเวอร์ คำสั่งจะยุติสคริปต์โดยแสดงผลลัพธ์ มิฉะนั้นจะรอการตอบกลับของผู้ใช้หรือคีย์ ENTER โดยพิมพ์ข้อความ กำลังพยายามเชื่อมต่อกับ….
#!/bin/bashโยนออก 'ป้อนที่อยู่เซิร์ฟเวอร์ที่คุณต้องการ ping'
อ่านเซิร์ฟเวอร์
ในขณะที่ ! ปิง -ค 1 -NS -ใน 2 $เซิร์ฟเวอร์
ทำ
โยนออก 'กำลังพยายามเชื่อมต่อกับ$เซิร์ฟเวอร์'
โยนออก 'กด [ENTER] เพื่อยุติ'
อ่าน -NS -NS 1 -NS 1กุญแจ
ถ้า [[ $key== $' x0a' ]];# ถ้าอินพุต == ปุ่ม ENTER
แล้ว
ทางออก 0
เป็น
เสร็จแล้ว
printf '%NSNS' '$เซิร์ฟเวอร์กำลังวิ่ง'
เรียกใช้สคริปต์
$ทุบตีkey5.shเอาท์พุท:
บทสรุป:
บทช่วยสอนนี้แสดงวิธีที่คุณสามารถเขียนสคริปต์ทุบตีในรูปแบบต่างๆ ที่จะรอให้ผู้ใช้ป้อนข้อมูลทำงานเฉพาะใดๆ หรือยุติสคริปต์ หวังว่า หลังจากฝึกฝนตัวอย่างข้างต้นแล้ว คุณจะสามารถเขียนสคริปต์ในลักษณะที่สามารถรอการกดแป้นใดๆ และทำงานเฉพาะตามแป้นที่ผู้ใช้กดได้