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命令之后,跟有一個文件名。就是我們之前寫入的文件名。
- 前言
- linux基礎(一)------登錄以及文件系統的了解
- linux基礎(二)----linux常用命令積累
- linux基礎(三)----linux命令系統學習----安裝和登錄命令
- linux基礎(四)----linux命令系統學習----文件處理命令
- linux基礎(五)----linux命令系統學習----系統管理命令
- linux基礎(六)----linux命令系統學習----網絡操作命令
- linux基礎(七)----linux命令系統學習----系統安全相關命令
- linux基礎(八)----linux命令系統學習----其它命令
- linux基礎(九)----linux性能監測
- linux基礎(十)----linux網絡配置詳細步驟---橋接模式和兩臺機子的遠程通信
- linux基礎(十一)----linux編程基礎----變量
- linux基礎(十二)----linux編程基礎----與用戶交互
- linux基礎(十三)----linux編程基礎----linux運算符
- linux基礎(十四)----linux編程基礎----linux條件控制語句----if else語句
- linux基礎(十五)----linux編程基礎----linux條件控制語句----case語句
- linux基礎(十六)----linux編程基礎----linux條件控制語句----多層嵌套控制結構
- linux基礎(十七)----linux編程基礎----linux循環控制語句----while循環
- linux基礎(十八)----linux編程基礎----linux循環控制語句----for in循環
- linux基礎(十九)----linux編程基礎----linux循環控制語句----break中斷和continue繼續
- linux基礎(二十)----linux編程基礎----子程序----函數