1. 程式人生 > >Linux 系統設定 env,export,set,declare 的區別

Linux 系統設定 env,export,set,declare 的區別

unix shell的變數分類 在Shell中有三種變數:內部變數,環境變數,使用者變數。內部變數:系統提供,不用定義,不能修改環境變數:系統提供,不用定義,可以修改,可以利用export將使用者變數轉為環境變數.使用者變數:使用者定義,可以修改 (1)內部變數(系統變數,環境變數,引數變數,預定義變數)  內部變數是Linux所提供的一種特殊型別的變數,這類變數在程式中用來作出判斷。在shell程式內這類變數的值是不能修改的。    表示方法     描述    $n     $1 表示第一個引數,$2 表示第二個引數 ...    $#     命令列引數的個數    $0     當前程式的名稱    $?     前一個命令或函式的返回碼    $*     以"引數1 引數2 ... " 形式儲存所有引數   

[email protected]     以"引數1" "引數2" ... 形式儲存所有引數    $$     本程式的(程序ID號)PID (2) 環境變數   Linux環境(也稱為shell環境)由許多變數及這些變數的值組成,由這些變數和變數的值決定環境外觀。這些變數就是環境變數。  包括兩部分,一是,由系統設定的,主要包括: HOME,LOGNAME,MAIL,PATH,PS1,PWD,SHELL,TERM  二是,使用者在命令列中設定的,使用export命令,但是使用者登出時值將丟失 (3)使用者變數(私有變數,本地變數)   在命令列中自己設定的. env, export,set和declare命令的區別    env顯示使用者的環境變數;(包括了 export 顯示出來的 和一些沒有被匯出為環境變數的系統變數)
set 顯示當前shell定義的變數,包括環境變數,按變數名稱排序;( 也就是整個shell中的所有變數 ) export 顯示當前匯出為環境變數的shell變數,並顯示變數的屬性(是否只讀),按變數名稱排序;(export 顯示出來的一部分是系統環境變數被匯出來作為環境變數,一部分是使用者 執行 export 或者 declare +x 自定義的變數手動匯出為環境變數) declare 同set 一樣 ( 也就是整個shell中的所有變數 )