2012-07-30 45 views
3

我正在使用awk。我想我的模塊化的代碼和我想知道是否變量聲明裏面的函數是局部或全局..例如函數awk中聲明的局部變量

main script 
    update() 

    function update() 
    { 
     array[1]="hi" 
    } 

我想知道它是在函數內聲明陣列是一個本地的或全球的..如果它不是本地的那麼..在awk中局部變量的概念是什麼。

回答

4

它們是全球性的:

awk 'function update() { array[1]="hi" } BEGIN { update(); print array[1];}' 
hi 

爲了讓本地的,你需要一個小竅門,把它作爲一個參數:

awk 'function update(array) { array[1]="hi" } BEGIN { update(); print array[1];}' 
+0

謝謝您的答覆。什麼是我自己調用時傳遞更新(數組)。現在將該數組設置爲全局或本地 – user1562262 2012-07-30 07:59:35

+0

,以使其在本地不傳遞任何內容,如示例中所示。如果你傳遞了相同的東西,它將被共享,但對整個代碼仍然不是全局的。 – 2012-07-30 08:00:50

+0

謝謝你的回覆..所以我可以得出結論,更新(數組),當傳遞將是全球性的,並使其成爲本地我們可以聲明不通過和數組將被銷燬時,它的功能... – user1562262 2012-07-30 08:11:26