โดย "ป้อนรหัสผ่าน" คุณอาจหมายถึงการป้อนข้อมูลโดยที่ผู้ใช้ไม่สามารถมองเห็นได้
(แนะนำโดย geirha) เมื่อใช้ bash คุณสามารถใช้-s
ตัวเลือกเพื่อป้องกันไม่ให้แสดงตัวอักษรที่พิมพ์:
read -p "Password please: " -s pass
หรือเปลี่ยนพฤติกรรมของเทอร์มินัลเพื่อซ่อนอักขระที่พิมพ์ด้วยstty -echo
(ปิดการใช้งานecho
) หลังจากที่ได้อ่านรหัสผ่านที่มีเปลือกในตัวread
ลงในตัวแปร (ในด้านล่างตัวอย่างเช่น$pass
) stty echo
หันกลับไปด้วย เนื่องจากบรรทัดใหม่Enterถูกซ่อนไว้คุณจึงต้องพิมพ์บรรทัดใหม่เพื่อรับผลลัพธ์ในอนาคตในบรรทัดใหม่
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
read
และprintf
เป็นตัวเชลล์ stty
ให้บริการโดยcoreutils
แพคเกจซึ่งติดตั้งโดยค่าเริ่มต้น นั่นหมายความว่าข้อมูลโค้ดนี้พกพาได้มาก
หมายเหตุ: -p
ตัวเลือกที่ไม่ได้มาตรฐาน bash
แต่จาก หากคุณต้องการแสดงพรอมต์ในเชลล์อื่นให้ใช้:
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
อ้างอิง: