导出具有动态数组名称的数组
export an array with dynamic array name
假设有一个代码
comp="LP"
n_names="abc456.com,def123.com,wxy098.com"
IFS=',' read -r -a n_split_list <<< "$n_names"
现在我想导出具有以下变量格式的 n_split_list 数组。请记住 comp 不必总是 "LP" 。它根据给脚本的参数而改变。
export "$comp"_list="${n_split_list[@]}"
但导出时出现问题(仅导出数组的第一项)
请帮忙!
假设您的值可能包含空格,您可以再次使用 read
动态变量名称和逗号作为 IFS
:
comp="LP"
n_names="abc456.com,def123.com,w xy098.com"
IFS=',' read -r -a n_split_list <<< "$n_names"
IFS=, read -ra ${comp}_list < <(printf '%s,' "${n_split_list[@]}")
# check content of new array
declare -p ${comp}_list
declare -a LP_list=([0]="abc456.com" [1]="def123.com" [2]="w xy098.com")
假设有一个代码
comp="LP"
n_names="abc456.com,def123.com,wxy098.com"
IFS=',' read -r -a n_split_list <<< "$n_names"
现在我想导出具有以下变量格式的 n_split_list 数组。请记住 comp 不必总是 "LP" 。它根据给脚本的参数而改变。
export "$comp"_list="${n_split_list[@]}"
但导出时出现问题(仅导出数组的第一项) 请帮忙!
假设您的值可能包含空格,您可以再次使用 read
动态变量名称和逗号作为 IFS
:
comp="LP"
n_names="abc456.com,def123.com,w xy098.com"
IFS=',' read -r -a n_split_list <<< "$n_names"
IFS=, read -ra ${comp}_list < <(printf '%s,' "${n_split_list[@]}")
# check content of new array
declare -p ${comp}_list
declare -a LP_list=([0]="abc456.com" [1]="def123.com" [2]="w xy098.com")