shell--standard input and output (read&echo)

巴扎黑
Release: 2017-07-18 10:28:17
Original
1881 people have browsed it

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[]}
Copy after login

<strong>运行效果:<br></strong>
Copy after login

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


源码:
Copy after login
Copy after login
Copy after login
Copy after login
#- -n  
 ${num}
Copy after login

<strong>运行效果:<br></strong>
Copy after login
Copy after login
Copy after login
Copy after login

-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


源码:
Copy after login
Copy after login
Copy after login
Copy after login
 -p    $num3
Copy after login

<strong>运行效果:<br></strong>
Copy after login
Copy after login
Copy after login
Copy after login
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)23 34 345 num1=23num2=34num3=345
Copy after login
 <br>
Copy after login

<br> -r :Does not allow backslashes to escape any characters

<br> -s:Do not display the data entered by read on the screen


源码:
Copy after login
Copy after login
Copy after login
Copy after login
#- -p  - 
 ${password}
Copy after login

<strong>运行效果:<br></strong>
Copy after login
Copy after login
Copy after login
Copy after login

- 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.


源码:
Copy after login
Copy after login
Copy after login
Copy after login
#- -t  ${num}
Copy after login

<strong>运行效果:<br></strong>
Copy after login
Copy after login
Copy after login
Copy after login

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 FD
The 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>
Copy after login

  test. |
Copy after login

<br>运行效果:
Copy after login
read接受文本作为输入

接收的文本字符是:#------------------------------------------

接收的文本字符是:#------------------------------------------

接收的文本字符是:# read接受文本作为输入

接收的文本字符是:echo " read接受文本作为输入"

接收的文本字符是:cat test.sh | while read line

接收的文本字符是:do

接收的文本字符是:echo

接收的文本字符是:echo "接收的文本字符是:"${line}

接收的文本字符是:done
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template