多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
linux程序不像其它语言一样有界面上的按钮交互等,所以一般需要获取用户的键盘输入。 这次学习如何通过键盘获取用户输入的信息及将信息显示在屏幕上。 ## 读取键盘输入 用户界面将信息显示在屏幕上,提示用户在键盘上按键。用户界面就是引导用户去做程序设计者想做的。 在举一个例子来说明如何指示计算机读人字符,并把它们赋给一个字符串变量,如下例所示: ~~~ #!/bin/bash clear echo " " echo "Enter Yvur First Name:" read FirstName ~~~ 指令说明如下: 首先,#!/bin/bash指示计算机在清屏(clear)前,启动hash shel。 其次,计算机在屏幕上跳过一个空行(echo “ ”),并告诉用户要输入的数据类型( echo "Enter Your FirstName:”) 保留字read指示计算机读取用户在键盘上输人的所有字符,并把它们存放到字符串变量FirstName中。不过,这个命令仅在用户按了回车键之后才开始执行。 这里 无论用户输入 数字 字符串 或者混合输入 使用的代码都是一样的。 ## 显示用户输入的数据 在程序获取用户输人的信息之后,就应当对它进行必要的处理。 程序既可以把数据用于计算,也可以把它存储在磁盘文件之中,甚至可以对它进行读者所能想像的任何处理。 对信息最常用的处理方式之一就是把它显示在屏幕上,另外就是把它与己有的信息进行比较。 但是,目前只需完成简单的信息显示工作就可以了。 一个典型的linux程序常叫用户输入一串字符,然后将它们存入一个变量中,接着在屏幕上把它们显示出来。 显示字符串的方式有两种,如: 将各个字符都显示在同一行上。 先将一些字符与其他的一些字符合并起来,再将它们显示在同一行上。 可以用指令echo “$variable name”,让计算机仅仅显示用户输人程序中的字符(当然,应当用实际的变量来取代variable name)。     还可以把各个字符放在引号(””)之间,将它们合并起来再显示,如下面的代码所示。在 这段代码中,程序请求用户输人他们的名字,然后显示一条欢迎他们的信息。例如: ~~~ #!/bin/bash clear echo " " echo "Enter Your First Name; " read FirstName echo "Hello, $FirstName" ~~~ 尽管在这个例子中程序增加了一个文本Hello,但是仍可以将这个字符串存储在另一个字符串变量中(在下面的例子中就是这么做的)。利用下面的代码,可以先指示计算机存取变量$Greeting并显示该字符串后,再存取变量$FirstName并显示其中的那些字符。例如: ~~~ #!/bin/bash clear declare FirStName, Greeting echo $Greeting ="Hello,” echo " " echo "Enter Your First Name; " read FirstName echo "$Greeting $FirstName" ~~~ ## 把数据存入文件 将用户输人的数据存入磁盘文件是经常要做的事。 Linus Torralds ( Linux)的设计者)认为无论程序什么时候用保留字echo显示信息,它都要用到屏幕。 这对大多数程序而言确是如此,但是也可以改变程序,让它将数据显示到其他的地方,比如一个文件中。这种处理过程称之为重定向(redirection ),它的意思是指改变数据正常的流动方向。 ### 覆盖写入 这种重定向工作其实一点也不难做。只要看看下面的例子,就会知道怎么做了。注意,除了最后一条语句外,其他的语句在前面都用过,如下例所示: ~~~ #!/bin/bash clear echo " " echo "Enter Your First Name;” read FirstName echo "Enter Your Last Name;” read LastName echo "$FirstName $LastName" >employees. dat ~~~ 大于号(>)指示计算机把变量的值存人一个名字为employees. dat的文件中,而不是显示在屏幕上。 关于重定向符大于号(>)有以下两点值得读者注意: 如果在程序中用大于号(>)向个文件中存信息,计算机将创建一个新的文件。 如果计算机中存在一个同名文件,它将用新的信息覆盖旧文件中的内容,文件中的原有信息将被丢失。所以,用它一定要小心。 ### 向文件中添加数据 用双大于号(>>)可以将信息添加至文件的末尾而不覆盖文件中的已有数据。 下面的代码与上一个例子的代码几乎相同—只是它是将新的信息添加到文件中(假设该文件已经存在)。如果读者在程序中规定的文件不存在,它将会白动创建一个新文件。例: ~~~ #!/bin/bash clear echo " " echo "Enter Your First Name;” read FirstName echo "Enter Your Last Name;” read LastName echo "$FirstName $LastName" >>employees. dat ~~~ ## 显示存入文件中的数据 在程序中使用实用程序cat,可以把存入一个文件中的信息显示到计算机屏幕上,如下面的例子所示。 将一个实用程序名放入程序,就像在命令行上键入实用程序名一样,也可以让计算机运行它。 程序员常把这个过程说成是调用一个实用程序。例如: ~~~ #!/bin/bash clear echo "Employee Data" echo " " cat employees. dat ~~~ 注意,在最后一行cat命令之后,跟有一个文件名。就是我们之前写入的文件名。