Один из способов сделать это - использовать seq для количества повторов строки, а printf с манипуляцией строками для звездочек.
SAY=$1
NUM=$2
CMD="echo *$SAY*"
c="${SAY//[*]}**"
s=$(printf "%-${#c}s" "*")
echo "${s// /*}"
for i in $(seq $NUM)
do $CMD
done
echo "${s// /*}"
Затем вы можете использовать этот сценарий с аргументами ./script.sh "Hello World" 3