目录

一、shell的基本输入---read 命令

  • 当脚本执行到read时,会停住(从running变成sleep状态),等待用户的输入(键盘输入)。
  • 键盘输入完,输入回车后,表示键盘输入结束

read 命令的选项

-p 打印信息

-t 限定时间,在多少时间内完成输入,超时直接退出

-s 不回显(比如:输入密码时不显示)

-n 输入字符的个数

 

例1,运行到read会等待用户输入,这里没有转义字符,不用-e也可以

#!/bin/bash

clear #   清屏
echo -n -e "Login: "
read
echo -n -e "PassWord: "
read

运行结果:

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 

Login: Tom
PassWord: 123456

 

例2:添加变量存储用户输入的内容

用户输入的内容会存在内存中,但是如何获取到用户输入的内容呢?---添加变量,标记内存的位置

#!/bin/bash
  
clear
echo -n  "Login: "
read user_name
echo -n  "PassWord: "
read pwd
echo "Login: $user_name, Password: $pwd"

运行结果: 可以提取到用户输入的内容了

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 
Login: zhangsan
PassWord: 123456
Login: zhangsan, Password: 123456
MBC02FV3MZMD6P:J_shell j$ 

 

例3: 输入密码时不回显 -s

#!/bin/bash
  
clear
echo -n  "Login: "
read user_name
echo -n  "PassWord: "
read -s pwd  #不回显密码
echo
echo "Login: $user_name, Password: $pwd"

执行结果:

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 
Login: hangsan
PassWord: 
Login: hangsan, Password: 11111

 

例4: 限定输入时间 -t

#!/bin/bash
  
clear
echo -n  "Login: "
read user_name
echo -n "PassWord: "
read -s -t8 pwd
echo
echo "Login: $user_name, Password: $pwd"

执行结果:超过8秒没有输入密码,自动超时退出

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 
Login: zhangsan
PassWord: 
Login: zhangsan, Password: 
MBC02FV3MZMD6P:J_shell j$ 

例5:限制输入字符的个数 -n

#!/bin/bash
  
clear
echo -n  "Login: "
read user_name
echo -n  "PassWord: "
read -s  -n7 pwd
echo
echo "Login: $user_name, Password: $pwd"

执行结果:只能获取7位,一直输密码,到7位会自动退出

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 
Login: zhangsan
PassWord: 
Login: zhangsan, Password: 9999999

 

例6 read -p打印输出

上面的例子用read简化输出

#!/bin/bash
  
clear
#echo -n  "Login: "
#read user_name
#echo -n  "PassWord: "
#read -s -n7 pwd

read -p "Login: " user_name
read -p "Password: " pwd
echo
echo "Login: $user_name, Password: $pwd"

运行结果:

MBC02FV3MZMD6P:J_shell j$ bash read_demo.sh 
Login: zhangsan
Password: 123456

Login: zhangsan, Password: 123456