Bash。创建以逗号分隔的数组。
问题的出现原因:代码中使用的数组nameserver没有以逗号分隔的形式输出。
解决方法:
1. 将数组nameserver以逗号分隔的形式输出:
(IFS=,;printf '%s' "${nameserver[*]}")
2. 将以空格分隔的数组nameserver转换为以逗号分隔的形式输出:
printf -v output '%s' "${nameserver[*]/%/,}"
3. 去除输出结果末尾的逗号:
echo "${output%,*}"
4. 如果目的是创建csv格式或python数组,可以使用$*或"${nameserver[*]}"来代替数组。
5. 将条件判断中的[ ! -z "$dns" ]改为[ -n "$dns"]。