文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>read语句

read语句

时间:2009-07-11  来源:流星陨落

read命令是一个内置命令,用于从终端或文件读取输入(参见表14-1)。read命令读取一个输入行,直至遇到换行符。行尾的换行符在读入时将被转换成一个空字符。如果read命令后未跟变量名,读入的行将被赋给内置变量REPLY。也可以用read命令来中断程序的运行,直至用户输入一个回车键。要知道如何有效地使用read命令从文件读取输入行,请参见14.6节的“循环控制命令”。如果带-r选项,read命令将忽略反斜杠/换行符对,而把反斜杠作为行的一部分。read命令有4个控制选项:-a,-e,-p,-r②。

表14-1 read命令

格    式

含    义

read answer

从标准输入读取一行并赋值给变量answer

read first last

从标准输入读取一行,直至遇到第一个空白符或换行符。把用户键入的第一个词存到变量first中,把该行的剩余部分保存到变量last中

read

标准输入读取一行并赋值给内置变量REPLY

read –a arrayname

读入一组词,依次赋值给数组arrayname③

                                        (续表)  

格    式

含    义

read -e

在交互式shell命令行中启用编辑器。例如,如果编辑器是vi,则可以在输入行时使用vi命令③

read –p prompt

打印提示符,等待输入,并将输入赋值给REPLY变量③

read –r line

允许输入包含反斜杠③

范例14-4

(脚本)

      #!/bin/bash

      # Scriptname: nosy

      echo -e "Are you happy? \c"

  1   read answer

      echo "$answer is the right response."

      echo -e "What is your full name? \c"

  2   read first middle last

      echo "Hello  $first"

      echo –n "Where do you work? "

  3   read

  4   echo I guess $REPLY keeps you busy!

  -------------------------------------------------------④

  5   read -p "Enter your job title: "

  6   echo "I thought you might be an $REPLY."

  7   echo -n "Who are your best friends? "

  8   read -a friends

  9   echo "Say hi to ${friends[2]}."

  -------------------------------------------------------

(输出)

      $ nosy

      Are you happy? Yes

  1   Yes is the right response.

  2   What is your full name? Jon Jake Jones

      Hello Jon

  3   Where do you work? the Chico Nut Factory

  4   I guess the Chico Nut Factory keeps you busy!

  5   Enter your job title: Accountant

  6   I thought you might be an Accountant.

7,8   Who are your best friends?  Melvin Tim Ernesto

  9   Say hi to Ernesto.

说明

1. read命令接收一行用户输入,将其值赋给变量answer。

2. read命令从用户处接收输入,将输入的第一个词赋给变量first,将第二个词赋给变量middle,然后将直到行尾的所有剩余单词都赋给变量last。

3. 从标准输入读取一行,赋值给内置变量REPLY。

4. 显示变量REPLY的值。

5. 带-p选项的read命令,显示提示“Enter your job title:”,把输入行赋值给特定内置变量REPLY。

6. 在字符串中显示变量REPLY的值。

7. 请求用户输入。

8. 带-a选项的read命令将输入当作一组词组成的数组,数组名为friends,读入数组的元素是Melvin、Tim和Ernesto。

9. 显示friends数组的第3个元素。数组下标从0开始。

范例14-5

(脚本)

    #!/bin/bash

    # Scriptname: printer_check

    # Script to clear a hung-up printer

1   if [ $LOGNAME != root ]

    then

        echo "Must have root privileges to run this program"

        exit 1

    fi

2   cat << EOF

     Warning: All jobs in the printer queue will be removed.

     Please turn off the printer now. Press return when you

     are ready to continue. Otherwise press Control C.

    EOF

3   read JUNK     # Wait until the user turns off the printer

    echo

4   /etc/rc.d/init.d/lpd stop      # Stop the printer

5   echo -e "\nPlease turn the printer on now."

6   echo "Press Enter to continue"

7   read JUNK                # Stall until the user turns the printer back on

    echo                      # A blank line is printed

8   /etc/rc.d/init.d/lpd start     # Start the printer

说明

1. 检查用户是否为root。如不是,则发送错误信息并退出。

2. 创建here文档。在屏幕上显示警告信息。

3. read命令等待用户输入。当用户按下回车键时,变量JUNK接收用户之前键入的内容。这个变量没什么实际用处。此处的read用来等待用户关闭打印机,然后回来按下回车键。

4. lpd命令终止打印机后台进程。

5. 现在重新打开打印机。

6. 如果已准备好,请求用户按下回车键。

7. 用户键入的任何内容都被读入变量JUNK,用户按下回车键之后,程序恢复运行。

8. lpd程序启动打印机后台进程。

 

相关阅读 更多 +
排行榜 更多 +
盒子小镇2游戏手机版下载

盒子小镇2游戏手机版下载

冒险解谜 下载
世界盒子模组版下载最新版本

世界盒子模组版下载最新版本

模拟经营 下载
音乐搜索app最新版本下载

音乐搜索app最新版本下载

趣味娱乐 下载