2014-01-23 82 views
1

打開我打開兩個文件具有下列內容的bash腳本:範圍變量的巴什

文件1:

#!/bin/bash 
a='Sunday' 

文件2:

#!/bin/bash 
b=$a 

這裏我的代碼片段:

#!/bin/bash 
. file1 
. file2 
echo $b 

OUTPUT:週日

這裏是我的問題:

  1. 什麼是變量的範圍 'A' 當我在shell腳本文件1打開?

  2. 如何用這種範圍創建一個shell變量?像下面這樣:

    #!/bin/bash 
    a='Sunday' 
    . file2 
    echo $b 
    

這可能嗎?

+0

你試過嗎?發生了什麼? – choroba

回答

2

.源腳本執行該文件中的命令,就好像它們是內聯寫入的一樣。採購沒有引入額外的範圍或環境。

寫作a='Sunday'無論直接編寫還是使用該行源代碼都具有相同的效果:它會在腳本的其餘部分創建一個可見的全局變量。這也解釋了爲什麼file2可以看到$a,因爲b=$a也是內聯執行的。