1. 程式人生 > >Linux 指令碼中使用變數的幾個問題

Linux 指令碼中使用變數的幾個問題

最近需要將本地hadoop伺服器上的資料全部遷移到阿里雲系統的伺服器上,因此對LINUX SHELL中變數的使用方法進行了詳細的研究。

LINUX SHELL中定義的變數有5種類型:本地變數、環境變數、位置變數、標準變數、特殊變數。(前面3種在本次導數中都有使用,因此進行詳細說明)

注意:LINUX  BASH中的變數使用無需事先宣告,沒有資料型別的區別,變數的值都是以字串的形式進行儲存的,如果要進行數值計算,就需要對這些變數進行數值轉換。

  • 這幾種變數的準確含義及檢視方法如下:
  1. 本地變數(使用者自定義變數)/(區域性變數):在當前SHELL環境下獲得賦值,一旦當前SHELL關閉,變數的生存週期就結束了。檢視當前SHELL的本地變數可以使用:set命令
  2. 環境變數(全域性變數):可作用於當前SHELL下的所有子SHELL程序。在我的導數任務過程中需要使用到的系統資料庫地址,使用者名稱和密碼即可以設定為當前SHELL的全域性變數。檢視當前SHELL的環境變數可以使用 env命令 或者 export命令 檢視。
  3. 位置變數(相當於程式中的引數):BASH將從鍵盤讀入的傳遞給指令碼的引數儲存在位置變數中,以便在指令碼中使用這些引數。在我的導數任務中,需要程式的執行需要讀入匯入的資料的資料記錄開始時間和資料記錄結束時間,這個引數的傳遞使用位置變數。在SHELL中位置變數一般允許$0-$9這10個位置變數,其中$0代表程式本身,$1-$9代表第一到第九個引數。10個以上可以使用${n}。在本次導數中,我將開始導數的時間使用位置變數進行賦值。如下
  4. 標準變數:BASH環境建立的一些標準環境的變數。
  5. 特殊變數:LINUX BASH的特殊變數這裡不再展開說明,以後用到再進行詳細研究。

  • 這幾種變數的賦值方法和呼叫方法

本地變數

         賦值方法:變數名=值 (注:等號兩邊不能有空格;變數名中不能包含空格,首字元必須為字母,可以包含下劃線,不能跟BASH的關鍵字相同; 值中一般不能出現空格,如果有空格需要使用引號)

呼叫方法:$引數名


環境變數

環境變數可以儲存到/etc/profile檔案中,在其它的shell中都可以進行引用,例如export  var1=4,在其它指令碼中可以直接進行引用,前面加上環境變數路徑 source /etc/profile