2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Shell

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

时间:03-04来源:作者:点击数:40
  • 使用格式
    • $ 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
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门