Home > Article > Operation and Maintenance > shell--standard input and output (read&echo)
Input read:
Purpose:
Read a line from the standard input, or read a line from the file descriptor FD (file descriptor), and It is divided into fields.
Usage:
read [-ers] [-a array] [-d delimiter] [-i buffer text] [ -n number of characters read] [-N number of characters read] [-p prompt] [-t timeout] [-u file descriptor] [name...]
Commonly used options:
-a:(arrary) Divide the read characters into words and store them in arrays (starting from 0)
#!/bin/ - ${variable[ ${variable[ ${variable[ ${variable[]}
<strong>运行效果:<br></strong>
Place the words into the array according to the segmentation, and the index starts from 0<br>34 ew qr34 3qr wer er qw<br>The first one:<br>34<br>The second one:<br>ew<br>The third one Number one: <br>qr34<br> Number four: <br>3qr
-n: Receive the specified number of characters. When the number of characters received is reached, Exit the input state immediately
源码:
#- -n ${num}
<strong>运行效果:<br></strong>
-n read accepts 10 characters<br>sgfgsngfdf<br>The 10 characters received are: sgfgsngfdf
<br>-p: Allows you to specify a prompt directly after the read command and assign values to multiple variables
源码:
-p $num3
<strong>运行效果:<br></strong>
使用-p参数完成多个变量赋值: 请输入三个数字或字符:(用空格隔开)23 34 345 num1=23num2=34num3=345
<br>
<br> -r :Does not allow backslashes to escape any characters
<br> -s:Do not display the data entered by read on the screen
源码:
#- -p - ${password}
<strong>运行效果:<br></strong>
- The input of s read is not displayed on the screen: <br>password:<br>password is 3432 rq erewr w
<br> -t : The number of seconds the read command waits for input. When the timer expires, it returns a non-zero status and exits waiting for input.
源码:
#- -t ${num}
<strong>运行效果:<br></strong>
Will wait for two seconds of input. After the timeout, it will exit the waiting; return a non-0 value
<br> -u: Read from file descriptor FD (file descriptor).
Supplementary content: File descriptor FDThe file descriptor is a non-negative integer in form. In fact, it is an index value pointing to the record table of files opened by the process maintained by the kernel for each process. When a program opens an existing file or creates a new file, the kernel returns a file descriptor to the process. In programming, some low-level programming often revolves around file descriptors. However, the concept of file descriptors is often only applicable to operating systems such as UNIX and Linux.By convention, the file descriptor of standard input is 0, standard output is 1, and standard error is 2. Although this convention is not a feature of the Unix kernel, because some shells and many applications use this convention, many applications will not work if the kernel does not follow this convention.
Example of reading from a file:
<br>
test. |
<br>运行效果:
read接受文本作为输入 接收的文本字符是:#------------------------------------------ 接收的文本字符是:#------------------------------------------ 接收的文本字符是:# read接受文本作为输入 接收的文本字符是:echo " read接受文本作为输入" 接收的文本字符是:cat test.sh | while read line 接收的文本字符是:do 接收的文本字符是:echo 接收的文本字符是:echo "接收的文本字符是:"${line} 接收的文本字符是:done
The above is the detailed content of shell--standard input and output (read&echo). For more information, please follow other related articles on the PHP Chinese website!