1. 程式人生 > >Linux編程 11(shell全局環境變量與局變環境變量)

Linux編程 11(shell全局環境變量與局變環境變量)

刪除 echo int 分享 lin 都是 重要 配置信息 影響

一.概述

  在linux中,很多程序和腳本都通過環境變量來獲取系統信息,存儲臨時數據,配置信息。環境變量是指用來存儲有關shell會話和工作環境信息,允許你在內存中存儲數據,以便程序或shell中運行的腳本能夠輕松訪問到它們。也是存儲持久數據的一種簡便方法。在bash shell中,環境變量分為:全局和局部二類環境變量。

  1.1全局環境變量

    全局環境變量對於shell會話和所有生成的子shell都是可見的。局部變量則只是創建它們的shell可見。在linux系統中有系統環境變量,它們基本都是使用全大寫字母,以區別普通用戶的環境變量。要查看系統全局變量,可以使用env命令, 如下圖所示:
    技術分享圖片


    要查看個別的環境變量的值,可以使用printenv命令, 如下圖所示:
    技術分享圖片
    正如前面所說的,全局變量在所有生成的子shell都是可見的,下面是用子shell輸出USER全局變量,如下所示:

    技術分享圖片

  1.2 局部環境變量

    局部環境變量雖然是局部的,但和全局環境變量一樣重要。在linux操作系統上有默認全局環境變量也有局部環境變量,用戶也可以自定義局部變量。使用set 命令會顯示某個指定進程下的所有環境變量,包括全局,局變,用戶自定義變量。

二.用戶自定義變量

  2.1 自定義局部變量

    下是自定義一個局部變量,使用echo來聲明一個變量名my_variable,並賦值一個字符串(也可是數字)。然後再使用echo輸出該變量的值。如下圖所示:
    技術分享圖片

    要註意的點是:聲明變量名時必須加$關鍵詞, 賦值時不要加$關鍵詞,輸出時要加$關鍵詞,也可以說使用echo時都要加$。變量名,等號,值三者之間不能有空格。如果變量值有空格時,必須加雙引號。如下所示:
    技術分享圖片
  
  如果是在子shell中,那該變量就不存在,退回主線程還是存在,如下圖所示:
    技術分享圖片

  2.2 自定義全局變量    

    設定了全局變量,在該進程所創建的子進程中,該變量都是可見的。創建全局變量的方法是先創建一個局部變量,然後導出到全局環境中。通過export來導出,變量名前面不加$。如下圖所示:
    技術分享圖片

    在子shell中修改全局變量並不會影響到父shell中該變量的值。這種改變僅在子shell中有效。並不會反映到父shell中。如下圖所示:
    技術分享圖片

  2.3 刪除環境變量

    要刪除環境變量可以用unset命令,在unset引用變量名時,不要加$。
    技術分享圖片

Linux編程 11(shell全局環境變量與局變環境變量)