Não há uma maneira interna de fazer isso que consegui encontrar. Você sempre pode gerar os argumentos em um loop como este:
para loop
$ printf '[ -d %s ] || mkdir %s; cd %s\n' 'for run in {1..3}; do echo "$dir";done'
Pequena variância:
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(for run in {1..3}; do echo "$dir";done)
Você pode controlar o número de argumentos alterando esta parte do comando {1..3}
.
seq & xargs
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(seq 1 3 | { xargs -i -- echo "$dir"; })
Isso criará um seq de números, de 1 a 3, e isso controlará quantas vezes o {xargs -i ...} será executado.
sim
Graças ao comentário do @rici, você também pode usar essa construção, yes ... | head -n 3
:
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(yes "$dir" | head -n 3)
Referências