我正在尝试在bash中打印一个数组,其元素数量以前是未知的。 所以,目标是拥有类似的东西:
printf "latc= ${#latc[@]}%s\n" ${latc[@]}
但似乎不可能。 我甚至试过this thread的解决方案作为
for x in "${latc[@]}"
do
printf " %s:%s\n" ${x}
done
,但我没有得到我想要的东西。
目前我正在使用:
printf " latc="
echo ${latc[@]}
显然不是一种优雅的方法。 有什么帮助吗?
答案 0 :(得分:1)
看起来你想要
printf "latc=%s\n" "${latc[*]}"
引用${latc[*]}
会生成一个字符串,其中使用latc
的第一个字符(默认情况下为空格)连接IFS
的元素。引用${latc[@]}
会引发一个特殊的扩展,为数组的每个元素生成一个单词。您似乎尝试使用${#latc[*]}%s
时,无法在格式字符串中指明重复占位符。
答案 1 :(得分:0)
您可以将数组打印为:
printf "%s\n" "${latc[@]}"