当前位置:网站首页>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
边栏推荐
猜你喜欢
Redis——Lettuce连接redis集群
明明设计的是高带宽,差点加工成开路?
嵌入式工程师面试题3-硬件
Computer tips
Insert mathematical formula in MD document and mathematical formula in typora
Properties of 15MnNiNbDR low temperature vessel steel, Wugang 15MnNiDR and 15MnNiNbDR steel plates
安装Oracle EE
【MFC开发(16)】树形控件Tree Control
jeecg 重启报40001
Introduction to 18mnmo4-5 steel plate executive standard and delivery status of 18mnmo4-5 steel plate, European standard steel plate 18mnmo4-5 fixed rolling
随机推荐
LogBack
Glitch free clock switching technology
19Mn6 German standard pressure vessel steel plate 19Mn6 Wugang fixed binding 19Mn6 chemical composition
DataBinding源码分析
中断与其他函数共享变量、临界资源的保护
Embedded Engineer Interview Question 3 Hardware
V79.01 Hongmeng kernel source code analysis (user mode locking) | how to use the fast lock futex (Part 1) | hundreds of blogs analyze the openharmony source code
个人装修笔记
In depth learning training sample amplification and tag name modification
长安链同步节点配置与启动
基础:2.图像的本质
电脑小技巧
猿人学第20题(题目会不定时更新)
VSYNC+三重缓存机制+Choreographer
What is the material of 16MnDR, the minimum service temperature of 16MnDR, and the chemical composition of 16MnDR
Centos7 shell脚本一键安装jdk、mongo、kafka、ftp、postgresql、postgis、pgrouting
1.jetson与摄像头的对接
Memory size end
Redis源码学习(29),压缩列表学习,ziplist.c(二)
Matlab tips (16) consistency verification of matrix eigenvector eigenvalue solution -- analytic hierarchy process