天天看點

Linux系列教程(二十二)——Linux的bash變量

Linux系列教程(二十二)——Linux的bash變量

  上篇部落格我們介紹了bash的一些基本功能,這是我們平時操作最頻繁的。本篇部落格我們介紹bash的變量,為後面編寫shell腳本做鋪墊。

1、什麼是變量

  變量是計算機記憶體的單元,其中存放的值可以改變。

  當 shell 腳本需要儲存一些資訊時,如一個檔案名或者一個數字,就把它放在一個變量裡。每個變量都有一個名字,可以根據名字來引用變量。

  使用變量可以儲存有用資訊,使系統獲知使用者的相關設定,變量也可以儲存暫時資訊。

2、變量的聲明規則

  

Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量

   

Linux系列教程(二十二)——Linux的bash變量

3、變量的分類

Linux系列教程(二十二)——Linux的bash變量

4、使用者自定義變量的用法

  使用者自定義變量也就是本地變量。隻在目前 shell 中生效。

  ①、變量定義

變量名=變量值
      
Linux系列教程(二十二)——Linux的bash變量

  ②、變量調用

$變量名
      
Linux系列教程(二十二)——Linux的bash變量

  ③、變量檢視

set
      

  set 是檢視目前系統中定義的所有變量。

Linux系列教程(二十二)——Linux的bash變量

  ④、變量删除

unset 變量名
      

5、環境變量的用法

  環境變量主要儲存的是和系統操作環境相關的變量。

  前面講的使用者自定義變量(本地變量)隻在目前shell 中生效,而環境變量會在目前shell和這個shell的所有子shell當中生效,如果把環境變量寫入相應的配置檔案中,那麼這個環境變量就會在所有的shell中生效。

  ①、通過 pstree 指令區分目前shell 的級别是父還是子

Linux系列教程(二十二)——Linux的bash變量

  ②、聲明環境變量

export 變量名=變量值
      

  ③、查詢所有環境變量

env
      

  前面講的 set 指令是檢視所有變量,而 env 是檢視環境變量。

  ④、檢視、删除指定環境變量

$變量名          #檢視環境變量
unset 變量名   #删除環境變量      

  這兩個和本地變量一樣。

Linux系列教程(二十二)——Linux的bash變量

  ⑤、系統查找指令的路徑環境變量 $PATH

  我們知道調用指令必須要是在目前目錄,或者是用絕對路徑進行。但是實際上我們調用某個指令直接使用指令名就可以了,比如cd,ls等等這些常用的,這是為什麼呢?

  原因就是在 $PATH 裡面我們已經定義好了,我們執行某個名稱的指令,系統會首先去$PATH裡面查找,如果找不到才會報找不到指令錯誤。

  首先看一下$PATH:

Linux系列教程(二十二)——Linux的bash變量

  可以看到,$PATH 裡面都是儲存的一些路徑,然後通過:分隔。

  前面我們寫過一個 hello.sh 的腳本,我們知道要想執行它,必須首先賦予可執行權限,然後要麼在目前目錄通過./hello.sh來執行,要麼通過絕對路徑/tmp/hello.sh來執行。如果我們想直接通過 hello.sh 來執行呢?

  解決辦法就将hello.sh的所在路徑添加到 $PATH 變量中,如下:

Linux系列教程(二十二)——Linux的bash變量

  ⑥、定義系統提示符的變量 $PS1

Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量

6、位置參數變量的用法

Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量

7、預定義變量的用法

  其實預定義變量也是位置參數變量的一種,有如下幾種用法:

Linux系列教程(二十二)——Linux的bash變量

 8、聲明變量類型 declare

Linux系列教程(二十二)——Linux的bash變量

9、數值運算的三種方法

  ①、declare -i 

Linux系列教程(二十二)——Linux的bash變量

  ②、expr 或 let 數值運算工具

Linux系列教程(二十二)——Linux的bash變量

  ③、$((運算式)) 或 $[運算式]

Linux系列教程(二十二)——Linux的bash變量

10、運算符及其優先級順序

Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量

11、變量測試與替換

Linux系列教程(二十二)——Linux的bash變量

12、環境變量配置檔案

  前面我們在将環境變量的時候,我們将腳本的路徑加入到 $PATH 路徑中,然後就可以直接通過腳本的名稱來執行腳本。但是如果系統重新開機之後,發現又必須要重新加入到 $PATH 變量中才可以。那麼有沒有讓它一直生效的方法呢?

  解決辦法就是在環境變量配置檔案中加入腳本的路徑。

  環境變量配置檔案中主要定義對系統的操作環境生效的系統預設環境變量,比如 PATH,HISTSIZE,PS1,HOSTNAME等預設環境變量。分别有以下配置檔案:

Linux系列教程(二十二)——Linux的bash變量

  下圖是環境變量檔案的讀取順序:(使用者每次重新登入的時候就會重新讀取下面的配置檔案)

Linux系列教程(二十二)——Linux的bash變量

  我們知道 $PATH 變量,使用者每次登入,就會從上面的檔案讀取順序讀取所有配置檔案,最後得到 $PATH 變量的值。

  注意:越往後面的配置檔案,裡面配置的變量内容優先級越高。

Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量
Linux系列教程(二十二)——Linux的bash變量

    

     

作者:IT可樂

出處:http://www.cnblogs.com/ysocean/

資源:微信搜【IT可樂】關注我,回複 【電子書】有我特别篩選的免費電子書。

本文版權歸作者所有,歡迎轉載,但未經作者同意不能轉載,否則保留追究法律責任的權利。

繼續閱讀