যেহেতু আমার এমন কেস ছিল যেখানে আমার arr2
শূন্যতা থাকতে পারে তবে সেট করা আছে, তাই আমি কোনও সহজ সমাধান খুঁজে পেলাম না। সুতরাং আমি একটি ফাংশন এবং গ্লোবাল টেম্প ভেরিয়েবল সঙ্গে যেতে ছিল। তবে এটি প্রতিটি ক্ষেত্রে এবং ব্যাশ 3.2 এবং ব্যাশ 4 এ কাজ করে
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[@]}"
আমি মানগুলিকে অনুলিপি করতে অপ্রত্যক্ষ অ্যারে রেফারেন্স ব্যবহার করি TEMP_VAR
, তবে আমি ব্যাশে কোনও অপ্রত্যক্ষ অ্যারের অ্যাসাইনমেন্ট বের করতে পারি না, সুতরাং দুটি লাইন এবং টেম্প ভেরিয়েবল
set -eu
সেখানে আপনার ভক্তদের জন্য
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[@]}"})