Sonu Mishra Sonu Mishra - 5 months ago 20
Bash Question

how to repeat a dash in shell

How can I repeat the character

n times in shell? I have read and tried this, but this does not work for
. It throws error
invalid option
. Below is the exact command that I used:

printf '-%0.s' {1..100}

I also tried escaping
by putting a
but in that case it repeats
n times.


This throws an error:

$ printf '-%.0s' {1..100}; echo ""
bash: printf: -%: invalid option
printf: usage: printf [-v var] format [arguments]

This works fine under bash:

$ printf -- '-%.0s' {1..100}; echo ""

For other shells, try:

printf -- '-%.0s' $(seq 100); echo ""

The problem was the printf expects that - starts an option. As is common among Unix/POSIX utilities in this type of situation, -- signals to printf to expect no more options.