在我们实际的编程中,一定会和用户有交互,那我们如何读取用户在控制台中输入的值呢?
Shell为我们提供了一个命令:read
对,你没看错,就是这么语义化,就是read。
他有一些参数:
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-p 后面跟提示信息,即在输入前打印提示信息。
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
-t 后面跟秒数,定义输入字符的等待时间。
测试一下:
1:没有参数使用read
vim she.sh
在文件中键入以下内容:
bash
复制代码
#! /bin/bash echo "请输入你想输入的字符串:" read string echo "你输入的字符串是:$string"
执行she.sh文件,输出:
bash
复制代码
[root@VM_0_4_centos test]# ./she.sh 请输入你想输入的字符串: qwertyuiop 你输入的字符串是:qwertyuiop
2:使用参数-p/-t
使用if-else来编写一个测试的小程序把,执行程序等待10秒,未输入答案,直接退出程序。
代码如下所示:
在she.sh文件中键入如下的内容:
bash
复制代码
#! /bin/bash if read -t 10 -p "请输入博客地址:" url then echo "你的博客地址是:$url" else echo "您输入超时了!" fi
执行she.sh文件,如下所示:
bash
复制代码
[root@VM_0_4_centos test]# ./she.sh 请输入博客地址:guanchao.site 你的博客地址是:guanchao.site [root@VM_0_4_centos test]# ./she.sh 请输入博客地址:您输入超时了! [root@VM_0_4_centos test]#
以上大概就是linux系统shell编程中read命令的基本使用。
有好的建议,请在下方输入你的评论。