官术网_书友最值得收藏!

Enhancing scripts with read prompts

We have seen how we can use the built in read to populate a variable. So far, we have used echo to produce the prompt but this can be passed to read itself using the -p option. The read command will surpass the additional linefeed, so we reduce both the line count and the complexity to some degree.

We can test this at the command line itself. Try typing the following command to see read in action:

$ read -p "Enter your name: " name

We use the read command with the -p option. The argument that follows the option is the text that appears in the prompt. Normally, we will make sure that there is a trailing space at the end of the text to ensure that we can clearly see what we type. The last argument supplied here is the variable we want to populate, we simply call it name. Variables are case-sensitive too. Even if we did not supply the last argument, we can still store the user's response, but this time in the REPLY variable.

Tip

Note that when we return the value of a variable we use $ but not when we write it. In simple terms when reading a variable we refer to $VAR when setting a variable we refer to VAR=value.

The following illustration shows the read command with syntax using the -p option:

We can edit the script so that it appears similar to the following extract from hello3.sh:

#!/bin/bash
read -p "May I ask your name: " name
echo "Hello $name"
exit 0

The read prompt cannot evaluate commands within the message string, such as we used before.

主站蜘蛛池模板: 宁夏| 社旗县| 杨浦区| 浮山县| 岢岚县| 镇雄县| 周宁县| 水城县| 永靖县| 安丘市| 泰安市| 封开县| 禄劝| 辽阳县| 金门县| 馆陶县| 碌曲县| 伊宁县| 陆良县| 普格县| 五台县| 通辽市| 宁河县| 凤山市| 娄底市| 盐津县| 平陆县| 枞阳县| 册亨县| 灯塔市| 井冈山市| 饶河县| 昭平县| 平塘县| 博乐市| 通辽市| 长丰县| 连州市| 普兰县| 昭平县| 上栗县|