Используйте некоторую команду, чтобы повторить нисходящую строку.
printf "%b%b%b%b look down %b%b%b%b\n" "${RED}" $(yes "${DOWN}" | head -6) "${NC}"
# or
printf "%b%b%b%b look down %b%b%b%b\n" "${RED}" $(for ((i=0;i<6;i++)); do echo "${DOWN}"; done) "${NC}"
# or
printf "%b%b%b%b look down %b%b%b%b\n" "${RED}" $(echo {1..6} | sed "s/[^ ]*/${DOWN}/g") "${NC}"
При использовании вышеуказанных решений вам нужно посчитать количество %b
используемых вами.
Возможно, вы хотите что-то вроде
msg=" look down "
count=10
for ((i=0;i<${count};i++)); do
msg="${DOWN}${msg}${DOWN}"
done
printf "%b%b%b\n" "${RED}" "${msg}" "${NC}"
Не printf "%b$msg%b\n" "${RED}" "${NC}"
, это происходит неправильно, если у msg есть %
.