特殊的shell變量 接Linux——Shell腳本中自定義變量的應(yīng)用(基礎(chǔ))2 除了用戶自定定義的shell變量以外,還有一系列的特殊的變量——環(huán)境變量、位置變量、預(yù)定義變量。 一、特殊的變量 1.環(huán)境變量 環(huán)境變量指的是出于運行需要而由linux系統(tǒng)提前創(chuàng)建的一類變量,主要用于設(shè)置用戶的工作環(huán)境,包括用戶宿主目錄、命令查找路徑、用戶當(dāng)前目錄、登錄終端等。環(huán)境變量的值由linux系統(tǒng)自動維護(hù),會隨著用戶狀態(tài)的改變而改變。 使用env命令可以查看到當(dāng)前工作環(huán)境下的環(huán)境變量,對于常見的一些環(huán)境變量應(yīng)了解其各自的用途。例如,變量USER表示用戶名稱,HOME表示用戶的宿主目錄,LANG表示語言和字符集,PWD表示當(dāng)前所在的工作目錄,PATH表示命令搜索路徑等。如下圖: PARH變量用于設(shè)置可執(zhí)行程序的默認(rèn)搜索路徑,當(dāng)僅指定文件名稱來執(zhí)行命令程序時,linux系統(tǒng)將在PATH變量指定的目錄范圍查找對應(yīng)的可執(zhí)行文件,如果找不到則會提示'command not found'。 例如:firsh.sh腳本位于/root目錄下,若希望能直接通過文件名稱來運行腳本,可以修改PATH變量以添加搜索路徑,或者將first.sh腳本復(fù)制到現(xiàn)有搜索路徑中的某個文件夾下。如下圖: 在linux系統(tǒng)中,環(huán)境變量的全局配置文件為/etc/profile,在此文件中定義的變量作用于所有用戶。除此之外,每個用戶還有自己的獨立配置文件(~/.bash_profil)。若要長期變更或設(shè)置某個環(huán)境變量,應(yīng)在上述文件中進(jìn)行設(shè)置。例如,執(zhí)行以下操作可以將記錄的歷史命令條數(shù)改為200條(默認(rèn)為1000條),只針對root用戶。如下圖: 上述修改只有當(dāng)root用戶下次登錄時才會生效。若希望立即生效,應(yīng)手動修改環(huán)境變量,或者可以加載配置文件執(zhí)行。如下圖: 2.位置變量 為了在使用shell腳本程序時,方便通過命令行為程序提供操作參數(shù),bash引入了位置變量的概念。當(dāng)執(zhí)行命令操作時,第一個字段表示命令名或腳本程序名,其余的字符串參數(shù)按照從左到右的順序依次賦值給位置變量。 位置變量也稱為位置參數(shù),使用$1、$2、$3....$9表示。例如,當(dāng)執(zhí)行命令行'ls -lh /boot/'時,其中第1個位置變量為'-lh',以'$1'表示;第2個位置變量為'/boot/',以'$2'表示。命令或腳本本身的名稱使用'$0'表示,雖然$0與位置變量的格式相同,但是$0屬于預(yù)定義變量而不是位置變量。 示例:下面是一個加法運算的小腳本sum.sh,用來計算兩個整數(shù)的和。需要計算的兩個整數(shù)在執(zhí)行腳本時以位置變量的形式提供。如下圖: 3.預(yù)定義變量 預(yù)定義變量是由bash程序預(yù)先定義好的一類特殊變量,用戶只能使用預(yù)定義變量,而不能創(chuàng)建新的預(yù)定義變量,也不能直接為預(yù)定義變量賦值。預(yù)定義變量使用'$'符號和另一個符號組合表示,較常用的幾個預(yù)定義變量的含義如下:
示例:下面是一個備份操作的小腳本,用來打包命令行指定的多個文件或目錄,并輸入相關(guān)信息。其中,新建的壓縮包文件名稱中嵌入時間,通過'date +%F'命令來獲取。如下圖: |
|