У меня есть функция, которая передает строку. Я хочу, чтобы эта функция дополняла эту строку символом * в строке. Допустим, я прошёл 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 ответ1

0

я хотел бы использовать

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

или jot (установите пакет "athena-jot" для Ubuntu)

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

Кроме того, не забудьте процитировать ваши переменные

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .