Simplesmente,
printf '0\n%.0s' {1..1000}
ou usando for loop,
for i in {1..1000}; do echo "0"; done
usando awk ,
awk 'BEGIN{for(c=0;c<1000;c++) print "0"}'
Como @ StéphaneChazelas apontou, Usar {1..1000} requer zsh ou versões recentes de bash , yash ou ksh93 e também significa armazenar todo o intervalo na memória (possivelmente várias vezes). Você perceberá que ele se tornará muito mais lento (se não falhar para a OOM) do que usar awk ou yes 0 | head ... para intervalos grandes como {1..10000000} . Ou em outras palavras, não escala bem. Uma solução possível seria usar
for ((i=0; i<=10000000;i++)); do echo 0; done
( ksh93 / zsh / bash ) não teria o problema de memória, mas ainda teria ordens de magnitude mais lento do que uma ferramenta dedicada ou abordagem de linguagem de programação real.