На большинстве систем можно обойтись простым
N=100
myvar=`perl -e "print '.' x $N;"`
Вы можете использовать в стиле C для
циклов в Bash:
num=100
string=$(for ((i=1; i<=$num; i++));do printf "%s" "#";done;printf "\n")
Или без цикла, используя printf
, без использования каких-либо внешних элементов, таких как sed
или tr
:
num=100
printf -v string "%*s" $num ' ' '' $'\n'
string=${string// /#}
Решение без циклов:
N=100
myvar=`seq 1 $N | sed 's/.*/./' | tr -d '\n'`
Когда мне нужно создать строку, которая содержит $x
повторений известного символа с $x
ниже постоянного значения, я использую эту идиому:
base='....................'
# 0 <= $x <= ${#base}
x=5
expr "x$base" : "x\(.\{$x\}\)" # Will output '\n' too
Выход:
.....