当前位置:网站首页>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
边栏推荐
猜你喜欢
《单片机原理及应用》-片外拓展
MATLAB【函数和图像】
Performance improvement 2-3 times! The second generation Kunlun core server of Baidu AI Cloud was launched
Qt的模型与视图
What is the material of 16MnDR, the minimum service temperature of 16MnDR, and the chemical composition of 16MnDR
The era of low threshold programmers is gone forever behind the sharp increase in the number of school recruitment for Internet companies
截图小妙招
FreeRTOS学习简易笔记
C语言指针的进阶(上篇)
C语言指针的进阶(下)
随机推荐
FreeRTOS学习简易笔记
Embedded Engineer Interview frequently asked questions
AVL树的理解和实现
VSYNC+三重缓存机制+Choreographer
LogBack
【面试必刷101】链表
Input标签的type设置为number,去掉上下箭头
【无标题】
What is the material of 16MnDR, the minimum service temperature of 16MnDR, and the chemical composition of 16MnDR
Nacos - service discovery
View drawing process analysis
Bimianhongfu queren()
NFT监管要点和海外政策
Model and view of QT
《微机原理》-绪论
Serial port to WiFi module communication
Differences among tasks, threads and processes
Shell脚本-case in 和正则表达式
R语言观察日志(part24)--初始化设置
Shell脚本-特殊变量:Shell $#、$*、[email protected]、$?、$$