首页 理论教育 通过内置命令在LinuxShell中实现键盘输入变量值

通过内置命令在LinuxShell中实现键盘输入变量值

时间:2023-11-18 理论教育 版权反馈
【摘要】:使用内置的read命令,通过键盘输入可以对变量赋值:上面的例子说明,对字符串赋值时,如果带上引号,则引号本身被认为是字符串的一部分。或者在read命令之前用echo命令给用户显示提示也是很好的做法。如果已经设置了内置变量TMOUT的值,那么这个值将作为read命令的默认超时时间。

通过内置命令在LinuxShell中实现键盘输入变量值

使用内置的read命令,通过键盘输入可以对变量赋值

978-7-111-48202-4-Chapter04-41.jpg

978-7-111-48202-4-Chapter04-42.jpg

上面的例子说明,对字符串赋值时,如果带上引号,则引号本身被认为是字符串的一部分。

如果输入字符串值的时候有连续多个空格,那么显示字符串的值时,用不用双引号效果是不一样的。例如:

978-7-111-48202-4-Chapter04-43.jpg

read命令可以一次读取多个变量的值:

978-7-111-48202-4-Chapter04-44.jpg

read命令后面不跟变量名时,输入的值被存入内置变量REPLY中:

978-7-111-48202-4-Chapter04-45.jpg

read命令的-p选项,用于在键盘输入前给用户提示(prompt),格式为:

978-7-111-48202-4-Chapter04-46.jpg

例如:(www.xing528.com)

978-7-111-48202-4-Chapter04-47.jpg

read-p命令中的提示信息也可以是一个字符串变量。在写脚本、要求用户键盘输入时,尽量多用选项-p,可以给用户明确的输入提示。或者在read命令之前用echo命令给用户显示提示也是很好的做法。例如:

978-7-111-48202-4-Chapter04-48.jpg

命令read的选项-t后面跟数字,单位为秒,可以进行计时输入。例如,下面的命令给了用户5秒钟时间,5秒内没有键盘输入的话,read命令超时(timeout)退出,退出状态为非0(失败):

978-7-111-48202-4-Chapter04-49.jpg

选项-t后面的数字也可以是小数。如果已经设置了内置变量TMOUT的值(见表4-3),那么这个值将作为read命令的默认超时时间。

选项-n用来计数输入的字符,当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。例如,下面命令中的-n1表示:只接受一个输入字符。准备输入Yes给变量answer,当输入完字母Y时,自动退出(不等到按其他键和回车键),变量answer被赋值为Y:

978-7-111-48202-4-Chapter04-50.jpg

选项-s使得read命令进入“静音模式(silent)”,即用户的键盘输入不显示在屏幕上。最典型的例子就是在输入密码的时候。运行下面的命令,输入的密码是看不见的,输入完成后,再显示变量my_passwd的值才能看见密码:

978-7-111-48202-4-Chapter04-51.jpg

read命令还可以使用文件描述符读入变量的值,选项及参数为-ufd,fd代表文件描述符,使用文件描述符给变量赋值的方法不是特别常用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈