Linux Shell 实现密码掩码输入
Linux shell编程实现密码掩码输入,效果如下:
脚本源码:
#!/bin/bashread -p "type your name:" namepassword=""
echo -n "type your password:"
while read -n 1 cc; doif [ $cc ]; thenpassword=$password$ccecho -n -e "\b*"elsebreak;fi
doneecho "The name you typed is "$name
echo "The password you typed is "$password
exit 0
用到的命令解释:
- echo: 回显命令,将字符串输出到终端。
-n表示禁止换行。
-e表示支持转义字符,例如"\b"表示退格。 - read:read命令可以接受从终端输入的字符,回车表示输入结束。
-n表示每次读取一个字符。
-p打印提示信息在终端。
read命令格式为read [选项] [变量]
,例如上边的read -p "type your name:" name
,将输入存入name变量。
整个核心实现就是这个while循环:
while read -n 1 cc; do #1if [ $cc ]; then #2password=$password$cc #3echo -n -e "\b*" #4else #5break; #6fi #7
done #8
第一行,循环执行read -n 1 cc
命令,每次循环从终端输入获取一个字符存入cc
变量
第二行,判断读入的字符是否是换行符
第三行,若不是换行符将cc
中的字符拼接到password
变量中
第四行,在终端上退格一下再输出一个*
用于覆盖输入的实际字符,达到掩码的目的
第六行,输入的是换行符表示退出,终止整个循环,密码输入完成
Linux Shell 实现密码掩码输入相关推荐
- linux shell数据重定向(输入重定向与输出重定向)详细分析
转载自: linux shell数据重定向(输入重定向与输出重定向)详细分析 - 程默 - 博客园 http://www.cnblogs.com/chengmo/archive/2010/10/20/ ...
- 【shell】Linux shell 之 判断用户输入的变量是否为数字
本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [root@XiaoPeng scripts]# echo $((1+2)) 3 方式二 [root@XiaoPeng s ...
- linux 输入是否为数字,【shell】Linux shell 之 判断用户输入的变量是否为数字
本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [root@XiaoPeng scripts]# echo $((1+2)) 3 方式二 [root@XiaoPeng s ...
- Linux shell接收用户的输入
- linux的shell键盘输入,linux shell获取键盘输入
linux shell从键盘获取输入 代码1: #!/bin/bash #提示"Input your choice:",把用户的输入保存入变量choice_user中 read - ...
- Linux Shell 读取用户输入
在Linux Shell下读取用户输入可以使用read命令. 用法: echo "Input something:" read input echo "Your inpu ...
- 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】
⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...
- Linux Shell的输入彩色字体
Linux Shell的输入彩色字体 文本终端的颜色可以使用"ANSI非常规字符序列"来生成.举例: echo -e "\033[44;37;5m ME \033[0m ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
最新文章
- 调用管道模型:高敏感、高性能
- 米家摄像头固件_小米摄像头被谷歌紧急封禁!别人的设备,能看到你家现场
- Evaluation of Deep Learning Toolkits
- MongoDB的高级语法
- 11种图像清晰度评价函数
- TensorFlow 2.0 - CNN / 预训练 / RNN
- go 接口 构造器_Go 中接口值的复制
- RabbitMQ管理界面简述_入门试炼_第3篇
- 导航栏-滚动渐变 - 封装版
- 【转】qt触摸屏隐藏鼠标指针
- Django的学习(六)————templates过滤器、Django shell、admin
- 软件体系结构——设计模式
- python 公众号爬虫_微信公众号爬虫,看这个就足够了
- 手机入侵修改服务器数据,手机怎么入侵服务器修改数据库
- 数据分析--数据的分组和聚合
- 2022韦莱韬悦人力资源管理季刊
- ZYNQ芯片软硬件协同开发二:最简Linux操作系统的硬件部分设计
- html如何固定字号,css怎么控制字体大小?
- 2000、XP、2003所有注册表设置
- 24c512 c语言程序,msp430读写24c512程序