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

  

posted @   苦逼运维  阅读(1468)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中新的强大生产力特性
点击右上角即可分享
微信分享提示