shell编程,获得用户输入read命令
获取输入:
read variable... 读取用户输入命令,变量可以有多个
-p 可以在read后面加上提示文字,例:read -p "please enter you name" name
例:read的基本使用
read name
echo $name
方法一:
echo -p "Please enter you name : " name
echo "You name is $name"
方法二:read后面有多个变量
read -p "please enter you name : " name age
echo "You name is $name ,You age is $age"
方法三:通过环境变量REPLY读取输入的值
read -p "enter you infomation :"
echo "You infomation are $REPLY"
输入超时:
当脚本运行到需要输入但是没有输入时,使用 -t 选项可以为read命令指定一个计时器,计时器过期后read会返回一个非零退出状态码。
例:
if read -t 5 -p "Enter you name:" name ; then
echo "You name is:" $name
else
echo "overtime"
fi
输入指定个数字符:
使用-n1参数(“1”为字符个数)可以指定输入个数,当达到指定字符个数后即退出,不用按回车键。
例:
read -n1 -p "enter y/n" answer
case $answer in
y | Y ) echo "yes" ;;
n | N) echo "no" ;;
esac
隐藏输入信息:
有时需要隐藏输入的信息比如密码,用 -s 选项可以隐藏输入的信息。
read -s -p "Enter you pass:" pass
echo "You pass is $pass"
从文件中读取:
每次调用read命令都会读取一行文本,当没有内容时返回非零状态码并退出
例:
cat demo.txt | while read line
do
echo "$line"
done