如何清除输入并再次询问密码?

陈腐的

我正在尝试使用函数从用户那里获取密码。

期望:当用户按下Enter并且没有输入时,什么都不应该发生。

实际行为:当用户按下时Enter,光标移至下一行,当用户输入一些字符并Enter再次按下时,我得到以下信息:

Password=xyz
xyz
xyz

这是函数:

get_password () {
  read -s
  if [ -z $REPLY ]; then
    get_password
  fi
  echo $REPLY
}

$PASSWORD=$(get_password)
echo "Password $PASSWORD"

请帮我改进这个功能

河口

你几乎就在那里。

get_password () {
    read -s -p "password? " REPLY;
    echo
    if [[ -z $REPLY ]]; then
        get_password;
    else
        echo $REPLY;
    fi;
}

输出:

 $ get_password
password? 
password? 
password?              # Here I typed "test"
test
$ PASSWORD="$(get_password)"
password?
$ echo $PASSWORD
a password

编辑:在变量中添加了保存密码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

验证输入并再次询问是否无效

如何删除Jupyter Notebook的密码并再次设置令牌

如果输入不是bigDecimal,如何抛出异常并再次扫描?

如何让Ubuntu在登录屏幕上再次询问我的密码?

如何再次询问权限?

如果值小于旧值,我如何清除列并再次填充数据 |excel|VBA|

在隐藏并再次显示后,如何防止使用renderUI进行的输入重置?

如何删除传单层并再次重画?

如何打破动画并再次运行它?

扫描输入并再次启动循环或关闭它

istringstream 将字符串放回输入并再次读取

我单击输入广播并再次单击以更改图像src ...如何将图像变回原来的状态?

在注册期间再次输入密码时如何解决密码验证规则?

询问为sudo install命令输入的密码

如何迫使Facebook再次询问许可?

如何强制Rabbit MQ积累并再次发送消息?

如何导出已解决的承诺并再次导入

如何从 JSON 解析 DiagnosticReport 并再次打印相同的 JSON?

单击并再次单击时如何更改“ a”元素的文本

如何让Regex删除冗余并再次调用自身?

如何备份IntelliJ插件并再次自动安装?

如何使用PIL从数组转到列表并再次返回?

如何检查从函数返回的值并再次重申循环?

如何添加数组,更改它并再次添加?

Java 检查变量是否为 AG。如果没有,显示错误信息并再次询问

在 Javascript 中将游戏数据压缩或转换为短字符串密码(并再次返回)

如何在VueJs中再次加载(重新加载)组件或销毁它并再次加载?

我如何恢复 Telethon 电报中旧的会话并再次连接(无需再次发送代码))

Debian:如何设置登录行为(询问密码)