shell read处理用户输入示例讲解

xiaoxiao2021-02-28  102

1.基本读取

echo "please input your name" read name echo "your name is ${name}"

2.不换行读取用户输入

echo -n "please input your name" # -n参数会移除字符串末尾的换行符,允许脚本用户紧跟其后输入数据而不用换行,这让脚本看起来更像表单

3.read 自带参数指定命令行提示符

read -p "please input your name:" name # -p参数使得提示与输入可以在同一行 注意:read命令会为输入的所有数据分配一个变量,或者你也可以指定多个变量,输入的每个数据值都会分配给表中的下一个变量,如果变量表在数据之前用完了,剩下的数据就会分配给最后一个变量。 如果在read命令行中不指定变量的话,read命令会将它接收到的所有参数放到特殊环境变量REPLYZ中。

4.设置读取超时

if read -t 5 "please input your name: " name # -t参数指明了read命令等待输入的秒数,当计时器超市时,read命令会返回一个非零的退出状态码 then echo "your name is ${name}" else echo "time out"

5.read对输入字符计数

read -n1 -p "please input your choice:[y/n]" choice #本例中将参数n和数值1组合起来,告诉read命令在接收单个字符之后退出 case $choice in Y | y) echo "your choice is yes!";; N | n) echo "your choice is no" exit;; esac echo "end"

6.隐式方式读取(例如密码)

read -s -p "please input your password: " password # -s选项看上去是将用户输入隐藏了,实际上是将用户输入的文本颜色设置为与命令行背景一致而达到隐藏内容的目的

7.从文件中读取

首先我们要将文件中的数据传递给read函数 cat file | while read line 完整的文件读取示例

count=1 cat filename | while read line do echo "line $count : $line" count = $[ $count + 1 ] done echo "end of reading file"
转载请注明原文地址: https://www.6miu.com/read-96993.html

最新回复(0)