1. 程式人生 > >linux中建立和刪除變數,sh與變數的作用範圍之間的關係

linux中建立和刪除變數,sh與變數的作用範圍之間的關係

a=1為定義了一個變數.注意定義變數的時候不能有等號

unset a取消定義的變數a

如果我定義一個變數a=4。然後編寫一個指令碼t1. 裡面的內容為echo 用於輸出a。但是此時並不能輸出a。因為a是一個外部的變數。他對於腳本里面是不可見的。

如果此時要在t1指令碼執行之後輸出a,就必須把a定義為export a=1。這時a對於t1是可見的。所以此時執行指令碼t1.sh之後會有輸出結果1

如果我在t1腳本里面又定義了一個變數d=5.然後在t1腳本里面呼叫t2指令碼。t2指令碼的內容是echo $d,即在t2裡面輸出t1定義的變數d。但此時是輸不出去的。因為d是在t1腳本里面定義的,所以在t2裡面是不可見的。所以如果要在t2腳本里面使用t1指令碼定義的變數d,就需要把d定義為export型別的。

綜上所述,如果要使一個變數在當前程序的子程序裡面可見。就必須使用export對這個變數進行宣告,使其對於當前程序的子程序也是可見的,

如果我要在t1指令碼的外面輸出,即在t1的父程序裡面訪問子程序裡面定義的資料,t1定義的變數。此時除了把t1中的變數定義為export,還必須在外面執行source t1.sh。所以source的功能是把子程序裡面的變數放到父程序裡面。使得其對於父程序也是可見的