一、SHELL規范
SHELL簡單介紹
Bash(/bin/bash)是目前大多數 Linux 版本采用的默認 Shell。Bash 的全稱為 Bourne Again Shell,是最受歡迎的開源軟件項目之一。
SHELL腳本簡單的來說,就是將平時使用的各種 Linux 命令按順序保存到一個文本文件中,然后添加可執行權限,這個文件就成為一個 Shell 腳本了。
SHELL腳本有以下幾個要點:
●將要執行的命令按順序保存到一 個文本文件
●給該文件可執行權限
●可結合各種Shelll控制語句以完成更復雜的操作
執行SHELL腳本
執行腳本,要求文件本身具有 x 權限,在某些安全系統中可能無法滿足此條件。鑒于此,Linux 操作系統還提供了執行 Shell 腳本的其他方式——指定某個 Shell 來解釋腳本語句,或者通過內部命令 source(或點號“.”)來加載文件中的源代碼執行。
常用的執行shell腳本的方法:
●方法一:腳本文件路徑(絕對路徑與相對路徑)
●方法二: sh腳本文件路徑
●方法三: source 腳本文件路徑
二、SHELL腳本變量
交互式硬件設備
●標準輸入:從該設備接收用戶輸入的數據
●標準輸出:通過該設備向用戶輸出數據
●標準錯誤:通過該設備報告執行出錯信息
1.重定向操作
類型
操作符
用途
重定向輸入
<
從指定的文件讀取數據,而不是從鍵盤輸入
重定向輸出
>
將輸出結果保存到指定的文件(覆蓋原有內容)
>>
將輸出結果追加到指定的文件尾部
標準錯誤輸出
2>
將錯誤信息保存到指定的文件(覆蓋原有內容)
2>>
將錯誤信息追加到指定的文件中
混合輸出
&>
將標準輸出和標準錯誤的內容保存到同一個文件夾中
2.管道符"|"
管道(pipe)操作為不同命令之間的協同工作提供了一種機制,位于管道符號“|”左側的命令輸出的結果,將作為右側命令的輸入(處理對象),同一行命令中可以使用多個管道。在 Shell 腳本應用中,管道操作通常用來過濾所需要的關鍵信息。
3.Shell 變量的作用、類型
■變量的作用
●用來存放系統和用戶需要使用的特定參數(值)
◆變量名:使用固定的名稱,由系統預設或用戶定義
◆變量值:能夠根據用戶設置、系統環境的變化而變化
■變量的類型
●自定義變量:由用戶自己定義、修改和使用
●特殊變量:環境變量,只讀變量,位置變量,預定義變量
3.1自定義變量
■定義一個新的變量
變量名以字母或下劃線開頭,區分大小寫,建議全大寫
格式:變量名=變量值
■賦值時使用引號
●雙引號:允許通過$符號引用其他變量值
●單引號:禁止引用其他變量值,$視為普通字符
●反撇號:命令替換,提取命令執行后的輸出結果
■整數變量的運算
格式:expr 變量1 運算符 變量2 [運算符 變量3] …
常用運算符
●加法運算: +
●減法運算: -
●乘法運算: *
●除法運算: /
●求模(取余)運算: %
3.2特殊變量
特殊變量可以分為四類:
●環境變量
●只讀變量
●位置變量
●預定義變量
■環境變量
環境變量指的是出于運行需要而由 Linux 系統提前創建的一類變量,主要用于設置用戶的工作環境,包括用戶宿主目錄、命令查找路徑、用戶當前目錄、登錄終端等。環境變量的 值由 Linux 系統自動維護,會隨著用戶狀態的改變而改變。
在 Linux 系統中,環境變量的全局配置文件為/etc/profile,在此文件中定義的變量作用于所有用戶。除此之外,每個用戶還有自己的獨立配置文件(~/.bash_profile)。若要長期 變更或設置某個環境變量,應在上述文件中進行設置。
■只讀變量
Shell 變量中有一種特殊情況,一經設定,其值是不可改變的,這種變量被稱為只讀變量。在創建變量的時候可將其設置為只讀屬性,也可以將已存在的變量設置為只讀屬性,只讀變量主要用于變量值不允許被修改的情況。
■位置變量
為了在使用 Shell 腳本程序時,方便通過命令行,為程序提供操作參數,Bash 引入了位置變量的概念。當執行命令行操作時,第一個字段表示命令名或腳本程序名,其余的字符 串參數按照從左到右的順序依次賦值給位置變量。
●表示為$n, n為1~9之間的數字
■預定義變量
預定義變量是由 Bash 程序預先定義好的一類特殊變量,用戶只能使用預定義變量,而不能創建新的預定義變量,也不能直接為預定義變量賦值。預定義變量使用“$”符號和另一個符號組合表示,較常用的幾個預定義變量的含義如下。
$#:表示命令行中位置參數的個數。
$*:表示所有位置參數的內容。
$?:表示前一條命令執行后的返回狀態,返回值為 0 表示執行正確,返回任何非 0
值均表示執行出現異常。關于$?變量的使用將在下一章介紹。
$0:表示當前執行的腳本或程序的名稱。