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

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.

主站蜘蛛池模板: 浙江省| 大港区| 海丰县| 镇坪县| 宁强县| 屏山县| 望都县| 涿鹿县| 新竹县| 老河口市| 邹城市| 涞水县| 蚌埠市| 睢宁县| 丰原市| 岳西县| 普兰县| 三门县| 蒙自县| 云霄县| 成武县| 来安县| 孝昌县| 洛川县| 佛教| 南宁市| 巍山| 丰县| 定南县| 宜春市| 湘潭县| 琼中| 江西省| 沙洋县| 商南县| 革吉县| 漳州市| 二连浩特市| 双峰县| 淄博市| 正镶白旗|