對不起這麼天真的問題 - 我只是嘗試undertand ...爲什麼在bash腳本中需要「declare -f」和「declare -a」?
例如 - 我有:
$ cat test.sh
#!/bin/bash
declare -f testfunct
testfunct() {
echo "I'm function"
}
testfunct
declare -a testarr
testarr=([1]=arr1 [2]=arr2 [3]=arr3)
echo ${testarr[@]}
當我運行它,我得到:
$ ./test.sh
I'm function
arr1 arr2 arr3
所以在這裏是一個問題 - 我必須(如果必須...)在這裏插入declare
? 隨着它 - 或沒有它的作品相同...
我可以理解,例如declare -i var
或declare -r var
。但是什麼是-f
(聲明函數)和-a
(聲明數組)?
感謝您的提示和鏈接。
declare'的'最常見的用途是函數,其中給定的任何標誌時,它的行爲與'local'內部。對於某些數據類型也是必要的,即。 '爲關聯數組聲明-A'。 'declare -g'通常是一個非常有用的特性,當它想要完全明確給讀者時,你有意*指向函數內的全局函數,而不是忘記聲明它並使其全局隱式。 –