目录
一、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