00:00
接下来呢,我们要介绍的是第七章,就是读取控制台的输入,这个对于一个编程语言来讲,其实比较基本,比较简单,哎,但是呢又必不可少,因为我们知道一般情况下,如果说我们想要写程序编一个软件的话,往往都会出现一些交互式的应用啊,那比方说我们有有可能有些数据啊,并不是一开始这个脚本程序运行的时候,后边就带着参数直接就进去的,我们往往是怎么样呢?来一个界面,然后去问用户请输入什么什么样的信息,哎,这个时候用户去做一个输入,然后我们获取到这个参数之后才去运行相应的程序,所以在这个过程当中,我们就必须跟用户有一些IO设备的交互。那输出的话,这个比较简单,我们之前也已经讲了啊,怎么样输出到这个标准控制台呢?诶非常简单,Linux she里边直接eo就可以输出,那如果说我们想要输出到文件的话,做一个输出重定向啊,这个之前我们都已经了解了,那现在我们要关心的就是怎么样做输入的获取呢?最简单的方式当然就是直接读取控制台的输入了,在控制台上跟用户做一个交互,让用户输入相应的信息。
01:14
啊,我们知道在很多其他的这些高级语言里边都有相应的这种类库啊,比如说呃,我们知道在这个,呃,Java或者是C里边啊,可能都有类似于像这个std。都会有这样的一些标准控制台输入的类库,那对于Linux shell呢,它其实也非常简单,就一个命令read啊,这也是本身lix内嵌的一个命令啊,Shell内嵌的一个命令,它的作用就是从控制台当前读取。当前用户的输入后面他可以跟着选项和参数,那我们可以看一下最常用的选项两个,一个叫杠P,它指的是指定读取值时的提示符,哎,什么叫提示符呢?其实简单来讲就是你现在不是要让用户做控制台输入吗?那输入的时候你应该给用户一点提示信息啊,你告诉用户你到底现在该输入什么,所以其实就是一句话,我们相当于就是写一串字符串放在这儿,那么用户输入之前就会看到这个提示信息,他就知道该敲什么。
02:18
后面呢,还有一个杠T,杠T指的是time啊,它指的是指定读取值时等待的时间,单位是秒,如果不加的话,不加这个参数的话,那就一直等待,用户不输入,我们就一直等在那儿。那如果说加了这个参数。等到足够的这个时间之后,用户没有输入,那就自动退出了,相当于超时退出啊,啊,那对应的后面还需要跟一个参数,那其实就是。可以指定读取值的变量名啊,也就是说我们当前不是要把用户从控制台输入的这个内容参数要拿到我们的脚本里面去做处理吗?那拿到脚本里边这个算什么呢?这个不能叫DOLLAR1DOLLAR2了呀,因为我们DOLLAR1DOLLAR2是在执行脚本的时候跟着的后边的参数位置参数啊,那现在呢,现在我们应该单独的去指定读进来的这个东西在脚本里面叫什么,那所以后边跟一个变量名称。
03:14
接下来我们可以在代码里边啊,在控制台还是创建一个脚本去测试一下这个简单的功能,所以接下来我们直接为一个read test.sh测试脚本,首先我们还是把头先敲进去啊,那首先是BBA。啊,那接下来我们直接就可以去进行读取了,Read啊,那当前比方说啊,我们加一个杠T参数,杠T就是指定等待的时间,比方说哎,我们就等十秒钟,十秒钟如果还不输入东西的话,直接退出,那另外呢,哎,我们加一个杠P参数,提示我们当前输入的信息,比方说我们就说请。输入。您的芳名?啊。表示让你输入一个名字了啊,接下来后边我们就给一个当前的变量名称,比方说我们就叫做name吧,然后接下来后边就可以直接去做一个E了。
04:10
Echo,我们直接说welcome,我们加上一个引号,因为有可能后边会有空格welcome,然后Dollar name。哎,这样的话就把我们当前想要的信息做了一个交互式的输出,所以整体来讲这个还是非常简单的啊,直接保存,接下来更改一下。可执行权限,那么我们接下来就可以直接去做运行了啊,那当前我们并没有。脚本运行时候的参数输入,诶,所以直接运行就可以,诶我们看请输入您的方名,诶,那我们如果输一个艾特硅谷的话,他就会说welcome at硅谷。啊,那另外如果说我们在这里一直等着,一直不输入的话,这里等到十秒之后我们就会发现。稍微等一下。我们就会发现他直接退出了啊,这里边直接输出的welcome,因为我们并没有说就不输出嘛,所以后边还是会继续去输出welcome,但是没有任何的信息啊,当然如果说我们想做更丰富的这个展示的话啊,可以在里边再做一些if else的判断,假如没有输入的话,我们这里边该输出什么,这也是可以去自定义的,这就是读取当前控制台的标准输入的过程。
我来说两句