📅  最后修改于: 2023-12-03 14:39:29.244000             🧑  作者: Mango
在编写 Bash 脚本的过程中,可能会涉及到需要用户输入密码的情况,为了保障安全性,我们需要让用户输入密码时不回显输入的内容。本文将介绍如何在 Bash 脚本中实现读取密码时不回显。
Bash 中提供了 read
命令用于读取用户输入的内容,但是默认情况下会回显所输入的文字,为了实现不回显密码的功能,我们可以借助 tty 模式的特性,使用 stty
命令设置输入模式为“不回显”。
以下是实现不回显密码的 Bash 脚本示例:
#!/bin/bash
# 保存旧的 tty 模式设置
stty_settings=$(stty -g)
# 设置输入模式为“不回显”
stty -echo
# 读取密码
echo "请输入密码:"
read password
# 恢复旧的 tty 模式设置
stty "$stty_settings"
echo "您输入的密码是:${password}"
在上面的示例中,首先使用 stty
命令保存旧的 tty 模式设置,然后设置输入模式为“不回显”,接着使用 read
命令读取用户输入的密码,最后恢复旧的 tty 模式设置。
通过使用 stty
命令设置输入模式为“不回显”,我们可以在 Bash 脚本中实现读取密码时不回显输入的内容,从而增强安全性。同时需要记得在读取密码后恢复原来的 tty 模式设置,以避免对后续操作造成影响。