如何使用 printf 重复一个字符 N 次

如何使用 printf 重复一个字符 N 次

我有一个传递字符串的函数。我希望这个函数*在一行中填充这个字符串。假设我传递了,foo bar我希望它打印类似

***************
*** foo bar ***
***************

我在评估字符串长度并将其与 一起使用时遇到了麻烦printf。这是我得到的

install_block() {
  dir="$1"
  main_echo="*** $dir ***"
  length="${#main_echo}"
  pad=$(printf '%.0s*' {1.."$length"}; echo)
  echo $pad
  echo $main_echo
  echo $pad
}

答案1

我会用

pad=$(printf '%*s' $length "" | tr ' ' '*')

或者jot(安装“athena-jot”包,适用于 ubuntu)

pad=$(jot -b '*' -s '' $length)

另外,别忘了引用你的变量

echo "$pad"
echo "$main_echo"
echo "$pad"

相关内容