📜  Bash 脚本 – Bash 读取密码而不回显(1)

📅  最后修改于: 2023-12-03 14:39:29.244000             🧑  作者: Mango

Bash 脚本 – Bash 读取密码而不回显

在编写 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 模式设置,以避免对后续操作造成影响。