【发布时间】:2019-06-14 09:48:23
【问题描述】:
我想将值添加到一个变量中,用逗号分隔,使用 for 循环。 第一个值应保持在前,依此类推。
for ((i=0; i<${#MYARRAY[@]}; i++));
do
ALL=$ALL$MYARRAY$i,
done
echo $ALL
我期望输出 val1,val2,val3 但实际输出是 val1,val2,val3,
如何避免最后一个值后面的逗号?
【问题讨论】:
-
欢迎来到 Stackoverflow。您可以为第一次迭代添加条件:if first => add without comma, else => add with comma before the value.
-
您的字符串连接包含包含数组值的明显尝试,但数组引用的形式不正确。此外,您应该使用小写或混合大小写的变量,以避免它们与 shell 和环境变量之间可能的名称冲突。此外,您可以使用
+=。这是所有的组合:all+=${myarray[$i]},,你应该总是引用你的变量:echo "$all"