• Linux Shell 实现密码掩码输入


    Linux shell编程实现密码掩码输入,效果如下:
    在这里插入图片描述

    脚本源码:

    #!/bin/bash
    
    read -p "type your name:" name
    
    password=""
    echo -n "type your password:"
    while read -n 1 cc; do
       if [ $cc ]; then
          password=$password$cc
          echo -n -e "\b*"
       else
         break;
       fi
    done
    
    echo "The name you typed is "$name
    echo "The password you typed is "$password
    exit 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    用到的命令解释:

    • echo: 回显命令,将字符串输出到终端。
      -n表示禁止换行。
      -e表示支持转义字符,例如"\b"表示退格。
    • read:read命令可以接受从终端输入的字符,回车表示输入结束。
      -n表示每次读取一个字符。
      -p打印提示信息在终端。
      read命令格式为read [选项] [变量],例如上边的read -p "type your name:" name,将输入存入name变量。

    整个核心实现就是这个while循环:

    while read -n 1 cc; do      #1
       if [ $cc ]; then         #2
          password=$password$cc #3
          echo -n -e "\b*"      #4
       else                     #5
         break;                 #6
       fi                       #7
    done                        #8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    第一行,循环执行read -n 1 cc命令,每次循环从终端输入获取一个字符存入cc变量
    第二行,判断读入的字符是否是换行符
    第三行,若不是换行符将cc中的字符拼接到password变量中
    第四行,在终端上退格一下再输出一个*用于覆盖输入的实际字符,达到掩码的目的
    第六行,输入的是换行符表示退出,终止整个循环,密码输入完成

  • 相关阅读:
    Es6
    idea 项目代码打包为jar包详解
    Java设计模式之中介者模式
    Windows线程池使用方法
    湖南大学数据库实验一
    2022 第四周全球 AI 模型周报
    odoo前端js对象的扩展方法
    优思学院|六西格玛黑带大师MBB是什么?兩大认证比较
    MD5是对称加密还是非对称加密,有什么优缺点
    网络编程启蒙
  • 原文地址:https://blog.csdn.net/gybshen/article/details/126320036