Linux命令之read
read命令可以读取标准输入的值,并赋予变量。一次可以读取多个变量的值,变量名或标准输入之间使用空格隔开。如果read命令后面没有指定变量名,那么读取到的值将自动赋予特殊变量REPLY。
read [选项] [变量名 [变量名 变量名 ...]]
(1).常用选项
1 2 3 4 5 | -s 将标准输入内容隐藏,多用于隐藏用户密码; -t [超时时间] 超过指定的时间限制没有输入,将会自动退出当前命令; -n [字符长度] 限制接收的字符长度,接收到指定字符长度后会自动退出当前命令; -r 允许输入空格、/、\、?等特殊字符; -p [字符串] 给出输入内容的提示,多用于脚本 |
(2).实例
输入多个变量名,读取多个值
1 2 3 4 5 6 | [root@youxi1 ~]# read a b 1 2 [root@youxi1 ~]# echo $a 1 [root@youxi1 ~]# echo $b 2 |
隐藏标准输入内容
1 2 3 | [root@youxi1 ~]# read -s password [root@youxi1 ~]# echo $password 123456 |
指定超时时间
1 2 3 | [root@youxi1 ~]# read -t 2 a [root@youxi1 ~]# echo $? 142 |
指定输入的字符串长度
1 2 | [root@youxi1 ~]# read -n 2 a 12[root@youxi1 ~]# |
允许输入特殊字符
1 2 3 4 5 6 7 8 | [root@youxi1 ~]# read a \n [root@youxi1 ~]# echo $a n [root@youxi1 ~]# read -r a \n [root@youxi1 ~]# echo $a \n |
在输入前提示当前应该输入的内容,其实类似于echo -n "[提示内容]";read [变量名]
1 2 3 4 | [root@youxi1 ~]# read -p "请输入密码:" password 请输入密码:123456 [root@youxi1 ~]# echo -n "请输入密码:" ;read password 请输入密码:123456 |
脚本综合使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [root@youxi1 ~]# vim a.sh #!/bin/bash read -p "请输入您的账号:" username read -p "请输入您的密码:" -s -r password echo #换行 read -p "请输入您的邮箱:" email echo "账号:" $username echo "密码:" $password echo "邮箱:" $email [root@youxi1 ~]# sh a.sh 请输入您的账号:xuexi 请输入您的密码: 请输入您的邮箱:xuexi@shiwokuaile.com 账号:xuexi 密码:123456!@#$%^ 邮箱:xuexi@shiwokuaile.com |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性