Shell脚本交互式输入密码以*显示

Shell脚本交互式输入密码以"*"显示

创建文本passwd.sh,输入shell命令如下:

#!/bin/bash

read -p "type your name:" name

paasword=""
echo -n "type your paasword:"
while read -n 1 cc; do
  if [ $cc ]; then
     password=$password$cc
     echo -n -e "\b*"
   else
     break;
   fi
done

echo "The name you type is "$name
echo  "The password you type is "$password
exit 0

执行命令./passwd.sh,生成效果图如下:
图1
read -p “提示信息” 接收输入值的变量:read命令接收标准输入,将用户输入赋值给变量,-p :指定提示信息,默认不支持换行;

echo -n “提示信息”:输出提示信息,且参数-n表示不换行输出;

read -n 1 cc:表示只接受用户输入一个字符;

while read -n 1 cc:用户每次输入一个字符,并赋值给变量cc;遇到换行则结束输入;

if [ $cc] :判断用户是否输入,用户有输入字符时则在passwd变量中追加字符并赋值给变量passwd;用户不输入任何字符时,则执行else 中的break,结束循环;

echo -n:不换行输出;

echo -e:遇到特殊字符不会当成字符输出,会特别处理;

“\b”:向前退格即删除前一个字符并输出"*";例如:

#!/bin/bash

read -p "type your name:" name

paasword=""
echo -n "type your paasword:"
while read -n 1 cc; do
  if [ $cc ]; then
     password=$password$cc
     #调试:每次用户给cc赋值,都会向前退格删除2,并输出下一个字符*
     echo -n -e "2\b*"
   else
     break;
   fi
done

echo "The name you type is "$name
echo  "The password you type is "$password
exit 0

图2
exit 0:退出脚本;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值