我在學習bash。 現在我想給一個函數一個空的數組。但是,它不起作用。請參考下面,如何給一個空數組在bash中的功能?
function display_empty_array_func() {
local -a aug1=$1
local -a aug2=${2:-no input}
echo "array aug1 = ${aug1[@]}"
echo "array aug2 = ${aug2[@]}"
}
declare -a empty_array=()
display_empty_array_func "${empty_array[@]}" "1"
的輸出以下,
array aug1 = 1 # I expected it is empty
array aug2 = no input # I expected it is 1
在我的理解,引用變量讓我們舉一個空的變量, 像下面,
function display_empty_variable_func() {
local aug1=$1
local aug2=${2:-no input}
echo "variable aug1 = ${aug1}"
echo "variable aug2 = ${aug2}"
}
display_empty_variable_func "" "1"
而且其輸出如下
variable aug1 = # it is empty as expected
variable aug2 = 1 # it is 1 as expected
我不知道傳遞空數組是什麼問題。 知道機制或解決方案的人。請讓我知道它。 非常感謝。
這可能幫助:https://stackoverflow.com/questions/16461656/bash-how-to-pass-array-as-an-argument-to-a-function – Sundeep