在bash中重复printf格式

时间:2013-10-30 21:37:26

标签: bash printf

我正在尝试在bash中打印一个数组,其元素数量以前是未知的。 所以,目标是拥有类似的东西:

printf  "latc= ${#latc[@]}%s\n" ${latc[@]}

但似乎不可能。 我甚至试过this thread的解决方案作为

for x in "${latc[@]}"
do
  printf " %s:%s\n" ${x}
done

,但我没有得到我想要的东西。

目前我正在使用:

printf  "       latc="
echo ${latc[@]}

显然不是一种优雅的方法。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

看起来你想要

printf "latc=%s\n" "${latc[*]}"

引用${latc[*]}会生成一个字符串,其中使用latc的第一个字符(默认情况下为空格)连接IFS的元素。引用${latc[@]}会引发一个特殊的扩展,为数组的每个元素生成一个单词。您似乎尝试使用${#latc[*]}%s时,无法在格式字符串中指明重复占位符。

答案 1 :(得分:0)

您可以将数组打印为:

printf "%s\n" "${latc[@]}"