constants

This commit is contained in:
pvincent
2026-07-20 02:51:30 +04:00
parent a3b83ce4ed
commit 560aef5e26
+15 -18
View File
@@ -1,10 +1,15 @@
#!/usr/bin/env miaou-bash #!/usr/bin/env miaou-bash
PREFIX_NESTED="__nested__"
INSPECT_SIMPLE='-> '
INSPECT_NESTED='=> '
INSPECT_END='~~~~'
function array_new { function array_new {
ref_name="$1" ref_name="$1"
shift shift
[[ -v nested_count ]] && ((nested_count++)) || nested_count=1 [[ -v nested_count ]] && ((nested_count++)) || nested_count=1
nested_name="nested_$nested_count" nested_name="${PREFIX_NESTED}$nested_count"
declare -ga "$nested_name" declare -ga "$nested_name"
declare -gn "$ref_name"="$nested_name" declare -gn "$ref_name"="$nested_name"
local -n internal="$nested_name" local -n internal="$nested_name"
@@ -18,42 +23,34 @@ function array_inspect {
echo "${prefix}array '$1' contains ${#ref[@]} elements" echo "${prefix}array '$1' contains ${#ref[@]} elements"
for i in "${ref[@]}"; do for i in "${ref[@]}"; do
if [[ -R $i ]]; then if [[ -R $i ]]; then
array_inspect "$i" "${prefix} => " array_inspect "$i" "${prefix}${INSPECT_NESTED}"
else else
echo "${prefix}-> $i" echo "${prefix}${INSPECT_SIMPLE}${i}"
fi fi
done done
echo "${prefix}----" echo "${prefix}${INSPECT_END}"
} }
# initialization # initialization
array_new mine1 'Albert' 20 array_new mine1 'Albert Dupontel' 20
array_new mine2 'Bob' 24 array_new mine2 'Bob Sinclar' 24
array_new mine3 'Conrad' 31 true array_new mine3 'Conrad Ademayor' 31 true
array_new nested mine1 mine2 mine3 array_new nested mine1 mine2 mine3
array_inspect nested array_inspect nested
# change values # change values
mine1+=(false) mine1+=(false)
: "$mine3" # pseudo use fix shellcheck issue
mine3[1]=$((mine3[1] + 8)) mine3[1]=$((mine3[1] + 8))
mine3[2]=false mine3[2]=false
array_inspect nested array_inspect nested
# nested twice # nested twice
declare -n other="${nested[1]:?}" # ':?' fix shellcheck issue declare -n other="${nested[1]:?}" # ':?' fix shellcheck issue
: "${other}" # pseudo use fix shellcheck issue
array_inspect other array_inspect other
array_new mine4 'Darryl' 30 array_new mine4 'Darryl' 30
other+=(mine4) other+=(mine4)
array_inspect nested array_inspect nested
# nested_new nested1 mine1 mine2 mine3 # CAN'T PREVENT LOOP!
# nested_inspect nested1 # other+=(nested)
# # array_inspect nested
# # change nested values
# declare -n first="${nested1[0]:?}" # ':?' fix shellcheck issue
# first+=("nope")
# first[1]=$((first[1] + 5))
# nested_inspect nested1