โดย "ป้อนรหัสผ่าน" คุณอาจหมายถึงการป้อนข้อมูลโดยที่ผู้ใช้ไม่สามารถมองเห็นได้
(แนะนำโดย 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'
อ้างอิง: