Shell 读取用户输入

14.2  读取用户输入

14.2.1  变量

上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量。如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚本内的局部变量(参见第13.10节“变量”)。

要获取变量的值,在美元符后跟变量名即可。shell会对双引号内的美元符后的变量执行变量扩展,单引号中的美元符则不会被执行变量扩展。

范例14-3

1   name="John Doe" or declare name="John Doe"   # local variable

2   export NAME="John Doe"    # global variable

3   echo "$name" "$NAME"      # extract the value

14.2.2  read命令

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开始。

时间: 2024-11-05 22:36:46

Shell 读取用户输入的相关文章

shell读取用户输入

当需要在执行过程中获得执行脚本人员的输入,使用read命令 (1)基本读取 read命令接受标准输入或其他文件描述符输入.读入后将数据放入一个标准变量中. -p 允许在read命令行中直接指定一个提示. 可以指定多个变量,也可以不指定(将放置在REPLY环境变量中) (2)计时 使用-t指定一个计时器,计时数满还未输入,read返回一个非0的退出状态. 使用-n指定输入的字符个数,输入达到预定数目时,就自动结束输入 (3)默读 使用-s使输入不显示在终端(例如输入密码) (4)读取文件 最常用的

read命令读取用户输入

read命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY.read命令常用选项:-a,-p,-s,-t,-n 1.REPLY变量 $readhello$echo $REPLYhello 2.读入用户指定的变量 $read answerhello$echo $answerhello $read first second thirdchen xiaopang panda$echo $first $second $thirdchen xiaopa

shell脚本读取用户输入并与之交互

举个栗子: #! /bin/bash echo -e "你真要想要执行此操作吗,yes or no?" read Confirm case $Confirm in y|Y|yes|Yes) echo "做你想做的事情吧" ;; *) echo "操作终止了!" esac

JS读取用户输入的数据后,会自动存储为字符型

读取用户输入

name = input("what is your name?") print("Hello",name) name = input("what is your name?") age = input("how old are you?") hometown = input("where is your hometown?") print ("Hello",name "you

day1(变量、常量、注释、用户输入、数据类型)

一.变量 name = "SmallNine" 等号前面是变量名(标识符),等号后面是变量值 变量的主要作用:就是把程序运算的中间结果临时存到内存里,已备后面的代码继续调用. 变量的定义规则: 1.变量名只能是字母.数字或下划线的任意组合 2.变量名的第一个字符不是数字 3.以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',

Linux Shell用户输入--整理

在shell脚本中处理linux输入主要有三种形式: 1)将他们像命令行参数一样处理,通过对应的位置参数来获取对应的输入参数 2)通过getopt和getopts这两个命令 3)通过read命令以交互的方式获取用户的输入参数 1.通过对应的位置参数获取 shell中的位置参数的计算是从0开始的依次往后加1对应用户的输入参数:例如$0对应的是用户的程序名,$1对应的第一个参数,$2为第二个参数,依次类推直到第10个参数以后则应用花括号将对应的位置参数包裹的获取方式为${10}. $#,$*,[em

shell基础05 处理用户输入

1.  命令行参数------类似javac  参数1 参数2 类似Java中编译的javac parm1.....在shell中,参数与参数之间用空格隔开.采用位置参数来识别对应的参数值:$0是程序名,$1是第一个参数,以此类推,知道第9个参数$9.对于大于9个参数的需要在变量数字周围添加花括号,比如${10}. note:命令行上不仅可以处理数值,还可以处理字符串. 1 [[email protected] Documents]$ cat test2.sh 2 #!/bin/bash 3 t

Shell编程—处理用户输入

1命令行参数 1.1读取参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数.这也包括shell所执行的脚本名称.位置参数变量是标准的数字:$0是程序名,$1是第一个参数,$2是第二个参数,依次类推,直到第九个参数$9. 例子:计算阶乘 $ vim test1.sh #!/bin/bash # using one command line parameter factorial=1 for (( number = 1;