当前位置:网站首页>Shell script -read command: read data entered from the keyboard
Shell script -read command: read data entered from the keyboard
2022-07-01 08:48:00 【Little snail's way】
read yes Shell Built in commands , It is used to read data from standard input and assign values to variables . If there is no redirection , The default is to read the data entered by the user from the keyboard ; If redirected , Then you can read data from the file .
read The usage of the command is :
read [-options] [variables]
options Said options , As shown in the following table ;variables Represents the variable used to store data , There can be one , There can be more than one .options and variables It's all optional , If the variable name is not provided , Then the read data will be stored in the environment variable REPLY in .
| Options | explain |
|---|---|
| -a array | Assign the read data to the array array, From the subscript 0 Start . |
| -d delimiter | Use string delimiter Specify the position where the reading ends , Instead of a newline ( The data read does not include delimiter). |
| -e | When getting user input , Code conversion of function keys , The character corresponding to the function key will not be directly explicit . |
| -n num | Read num Characters , Instead of a whole line of characters . |
| -p prompt | Display prompt message , The tip is prompt. |
| -r | Read as is (Raw mode), Do not interpret backslash characters as escape characters . |
| -s | silent mode (Silent mode), The entered characters will not be displayed on the screen . When entering passwords and other confirmation information , It is necessary to . |
| -t seconds | Set timeout , The unit is in seconds . If the user does not complete the input within the specified time , that read Will return a non 0 The exit status of , Indicates a read failure . |
| -u fd | Use file descriptors fd As an input source , Instead of standard input , Similar to redirection . |
Code 1 Use read Command assigns values to multiple variables
#!/bin/bash
read -p "Enter some information > " name url age
echo " Website name :$name"
echo " website :$url"
echo " Age :$age"
Output :
Enter some information > jack www.baidu.com 7
Website name :jack
website :www.baidu.com
Age :7
Be careful , All values must be entered on one line , Can't break , Otherwise, only the first variable can be assigned , Subsequent variables will fail to be assigned .
This example also USES -p Options , This option will prompt the user to enter... With a piece of text .
Code 2 Read only one character
#!/bin/bash
read -n 1 -p "Enter a char > " char
printf "\n" # Line break
echo $char
Output :
Enter a char > 1
1
-n 1 Indicates that only one character is read . After running the script , As long as the user enters one character , Immediate read end , Don't wait for the user to press enter .printf "\n" Statement is used to achieve the effect of line breaking , otherwise echo The output of the will be on the same line as the user input , It's not easy to distinguish .
Code 3 Enter the password within the specified time
#!/bin/bash
if
read -t 20 -sp "Enter password in 20 seconds(once) > " pass1 && printf "\n" && # Enter the password for the first time
read -t 20 -sp "Enter password in 20 seconds(again)> " pass2 && printf "\n" && # Enter the password for the second time
[ $pass1 == $pass2 ] # Determine whether the two passwords are equal
then
echo "Valid password"
else
echo "Invalid password"
fi
In this code , We use && Combined multiple commands , These commands will be executed in turn , And as a whole if The judgment condition of a sentence , As long as one of the commands fails ( Exit status is not 0 value ), The whole judgment condition fails , There is no need to execute subsequent commands .
Output :
If the two passwords are the same , The running result is :
Enter password in 20 seconds(once) >
Enter password in 20 seconds(again)>
Valid password
If the two passwords are different , The running result is :
Enter password in 20 seconds(once) >
Enter password in 20 seconds(again)>
Invalid password
If the first input times out , The running result is :
Enter password in 20 seconds(once) > Invalid password
If the second input times out , The running result is :
Enter password in 20 seconds(once) >
Enter password in 20 seconds(again)> Invalid password
边栏推荐
- "Analysis of 43 cases of MATLAB neural network": Chapter 30 design of combined classifier based on random forest idea - breast cancer diagnosis
- 易点易动助力企业设备高效管理,提升设备利用率
- 日常办公耗材管理解决方案
- 任务、线程、进程 区别
- 1. Connection between Jetson and camera
- 3、Modbus通讯协议详解
- 《单片机原理与应用》——并行IO口原理
- Personal decoration notes
- 又到年中,固定资产管理该何去何从?
- Matlab tips (16) consistency verification of matrix eigenvector eigenvalue solution -- analytic hierarchy process
猜你喜欢

MATLAB【函数和图像】

"Analysis of 43 cases of MATLAB neural network": Chapter 30 design of combined classifier based on random forest idea - breast cancer diagnosis

Vscode customize the color of each area

一文纵览主流 NFT 市场平台版税、服务费设计
![[MFC development (17)] advanced list control list control](/img/e8/24c52cb51defc6c96b43c2ef3232ff.png)
[MFC development (17)] advanced list control list control

1.jetson与摄像头的对接

猿人学第20题(题目会不定时更新)
![[MFC development (16)] tree control](/img/b9/1de4330c0bd186cfe062b02478c058.png)
[MFC development (16)] tree control

Introduction to R language

Bimianhongfu queren()
随机推荐
TypeError: __init__() got an unexpected keyword argument ‘autocompletion‘
Shell脚本-if else语句
明明设计的是高带宽,差点加工成开路?
It technology ebook collection
嵌入式工程师面试-常问问题集
Nacos - 服务发现
Shell脚本-字符串
FreeRTOS学习简易笔记
The meaning of yolov5 training visualization index
Shell脚本-read命令:读取从键盘输入的数据
Screenshot tips
TV size and viewing distance
【C】 Summary of wrong questions in winter vacation
安装Oracle EE
任务、线程、进程 区别
factory type_id::create过程解析
Shell脚本-位置参数(命令行参数)
Common interview questions for embedded engineers 2-mcu_ STM32
分享2022上半年我读过的7本书
固定资产管理系统让企业动态掌握资产情况