您当前的位置:首页 > 计算机 > 编程开发 > Shell

Shell read 键盘输入并复制给变量

时间:03-04来源:作者:点击数:
  • 使用格式
    $ read [-p "提示信息"] 变量名
    
    -p:提示信息。
    -t:指定超时秒数。
    -s:设置是否在终端显示输入的内容,设置则为不显示,默认显示。
    -a:将分隔后的字段依次存储到 -a 指定的数组中,存储的起始位置从数组的 index=0 开始。
    -d:指定读取行的结束符号,默认结束符号为换行符。
    -n:限制输入 n 个字符就自动结束输入,如果没有输入满 n 个字符就按下回车或遇到换行符,则也会结束读取。
    -N:限制输入 N 个字符就自动结束输入,如果没有输入满 N 个字符就按下回车或遇到结束符,不会结束 read 输入,此时的结束符算一个字符。
    -r:禁止反斜线的转义功能,这意味着 \ 会变成文本的一部分。
    上面配置项没有先后顺序,谁前谁后都行。
  • 举例
    # 没有指定接受变量,直接输入名称,没有指定变量默认会存储到 $REPLY 全局属性中
    $ read
    $ echo $REPLY
    
    # 指定接收变量,直接输入名称
    $ read name
    $ echo $name
    
    # 使用 -p 有提示信息
    $ read -p "请输入名称:" name
    $ echo $name
    
    # 使用 -s 有提示信息,输入不可见
    $ read -s -p "请输入名称:" name
    $ read -p "请输入名称:" -s name
    $ echo $name
    
    # 使用 -t 必须在 3 秒内完成输入,否则 read 自动退出
    $ read -t 3 name
    $ echo $name
    
    # 使用 -a 将输入的数据进行空格分隔成数组,并存储到 $arr
    $ read -a arr
    11 22 33 44
    # 默认输出数组 0 位置
    $ echo $arr
    11
    # 输出全部
    $ echo ${arr[@]}
    11 22 33 44
    $ echo ${arr[0]}
    11
    $ echo ${arr[1]}
    22
    
    # 使用 -d 设置 / 为结束符,而不是回车键位结束输入
    $ read -d '/'
    123
    123
    123/
    $ echo $REPLY
    123 123 123
    
    # 使用 -n 设置输入长度为 5,输入到 5 位字符时自动结束输入
    $ read -n 5
    12345
    $ echo $REPLY
    12345
    
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门