Home  >  Article  >  Operation and Maintenance  >  Introducing the usage of read in linux

Introducing the usage of read in linux

巴扎黑
巴扎黑Original
2017-09-04 15:38:002057browse

1. Basic reading

The read command receives input from standard input (keyboard) or input from other file descriptors (discussed later). After getting the input, the read command puts the data into a standard variable. The following is the simplest form of the read command

::

#!/bin/bash
echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行
read  name                   //从键盘输入
echo "hello $name,welcome to my program"     //显示信息
exit 0                       //退出shell程序。
//********************************

Since the read command provides the -p parameter, a prompt can be specified directly on the read command line.

So the above script can be abbreviated as the following script::

#!/bin/bash
read -p "Enter your name:" name
echo "hello $name, welcome to my program"
exit 0

In the above read, the variable after read only has one name, or there can be multiple. At this time, if multiple data are input, then The first data is given to the first variable, and the second data is given to the second variable. If there are too many input data, all the values ​​will be given to the first variable. Will not end if too little input.

//******************************************

You do not need to specify variables in the read command line. If you do not specify a variable, the read command will place the received data in the environment variable REPLY.

For example::

read -p "Enter a number"

The environment variable REPLY contains all the data entered and can be used in shell scripts like other variables. Environment variable REPLY.

2. Timing input.

There are potential dangers in using the read command. The script will most likely stop and wait for user input. If the script must continue execution regardless of whether data is entered, a timer can be specified using the -t option.

-t option specifies the number of seconds the read command waits for input. When the timer expires, the read command returns a non-zero exit status;

#!/bin/bash
if read -t 5 -p "please enter your name:" name
then 
echo "hello $name ,welcome to my script"
else
echo "sorry,too slow"
fi
exit 0

In addition to inputting the timer, you can also set the read command to count the characters entered. When the number of characters entered reaches the predetermined number, it automatically exits and assigns the entered data to variables.

#!/bin/bash
read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
  echo "fine ,continue";;
N | n)
  echo "ok,good bye";;
*)
 echo "error choice";;
esac
exit 0

This example uses the -n option, followed by the value 1, to instruct the read command to exit as soon as it receives one character. Just press a character to answer, and the read command immediately

accepts the input and passes it to a variable. No need to press enter.

3. Silent reading (input is not displayed on the monitor)

Sometimes script user input is required, but the entered data is not expected to be displayed on the monitor. A typical example is entering a password, but of course there are many other data that need to be hidden. The

-s option enables the data entered in the read command not to be displayed on the monitor (actually, the data is displayed, but the read command sets the text color to the same color as the background).

#!/bin/bash
read  -s  -p "Enter your password:" pass
echo "your password is $pass"
exit 0

4. Read files

Finally, you can also use the read command to read files on the Linux system.

Every time the read command is called, "one line" of text in the file will be read. When the file has no readable lines, the read command will exit with a non-zero status.

The key to reading a file is how to transfer the data in the text to the read command.

The most common method is to use the cat command on the file and pipe the results directly to the while command containing the read command

Example::

#!/bin/bash
count=1    //赋值语句,不加空格
cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          //注意中括号中的空格。
done
echo "finish"
exit

The above is the detailed content of Introducing the usage of read in linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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