砰.创建逗号分隔的数组



我有以下bash脚本:

declare -a nameserver=()
for ((n=1; n<=5; n++))
do
read -p 'Enter DNS'$n' ? : ' dns
if [ ! -z "$dns" ]
then
nameserver+=$dns
else
break
fi
done
echo ${nameserver}

输出显示dns1dns2dns2

如何使用逗号分隔的值回显数组?示例:dns1、dns2、dns3

谢谢。

未测试,但您可以尝试从代码中进行调整。

declare -a nameserver=()
for ((n=1; n<=5; n++))
do
read -p 'Enter DNS'$n' ? : ' dns
if [ ! -z "$dns" ]
then
nameserver+=("$dns")
else
break
fi
done
(IFS=,;printf '%s' "${nameserver[*]}")

用逗号分隔的空格。

printf -v output '%s' "${nameserver[*]/%/,}"

删除尾部逗号。

echo "${output%,*}"

虽然从技术上讲,$*"${nameserver[*]}"不再是一个数组,但它只是一个字符串。所以,除非你试图创建csv格式或python数组,否则你所要求的有点奇怪。


不要否定-z,只使用不带bang!-n,例如

[ -n "$dns" ]

nameserver被声明为和数组,但您正在分配变量nameserver+=,数组需要( )

相关内容

  • 没有找到相关文章

最新更新