我有一个如下所示的数组
data=(1,2,3,4,5)
${data[*]}
输出:
1 2 3 4 5
上面的输出像\ n
我只想使用for循环并将每个值附加在变量中,并以逗号分隔,如下所示:
testData=1,2,3,4,5
任何想法我都只能在shell脚本中使用FOR
循环来实现。
答案 0 :(得分:1)
如果您的输入确实是是一个数组,例如:
data=( 1 2 3 4 5 )
...将其转换为逗号分隔的值列表可能类似于:
testData=$(IFS=,; printf '%s\n' "${data[*]}")
...或者更着眼于效率:
printf -v testData '%s,' "${data[@]}"
testData=${testData%,}
其中一个之后
echo "$testData"
将发出:
1,2,3,4,5
答案 1 :(得分:0)
使用bash
parameter transformation和substitution:
x=(1 2 3 4 5) x=${x[@]@P} x=${x// /,} ; echo $x
输出:
1,2,3,4,5