arr2
Boş olabileceğim, ancak ayarlayabileceğim durumlar olduğu için basit bir çözüm bulamadım. Bu yüzden bir işlev ve küresel sıcaklık değişkeni ile gitmek zorunda kaldım. Ancak her durumda ve bash 3.2 ve bash 4'te çalışır
function set_temp_array()
{ # 1 - source_array_name $2-* default_values
local default="$1"
shift
if declare -p $default >& /dev/null; then
default="${default}[@]"
TEMP_VAR=("${!default}")
else
TEMP_VAR=("${@}")
fi
}
set_temp_array arr1 "${arr2[@]}"
arr1="${TEMP_VAR[@]}"
Ben değerleri kopyalamak için dolaylı dizi başvurusu kullanın TEMP_VAR
, ancak bash dolaylı bir dizi ataması anlayamadık, bu nedenle iki satır ve temp değişkeni
Eğer için set -eu
orada fanlar
function set_temp_array()
{ # 1 - source_array_name $2-* default_values
local default="$1"
shift
if declare -p $default >& /dev/null; then
default="${default}[@]"
TEMP_VAR=(${!default+"${!default}"})
else
TEMP_VAR=(${@+"${@}"})
fi
}
set_temp_array arr1 ${arr2+"${arr2[@]}"}
arr1=(${TEMP_VAR+"${TEMP_VAR[@]}"})