bash
tem estilo C para loops, mas estilisticamente eles são um pouco estranhos para usar quando você não precisa. E se você realmente tiver , você pode estar usando o idioma errado . (Para este caso de uso, o shell está bem, é claro.)
Uma maneira muito mais shell-like para fazer isso (na minha opinião) é:
for i in {0..5}; do for j in $(seq "$i" 5); do echo "$i$j"; done; done
Aqui está outra abordagem:
(set {0..5}; for i; do for j; do [ "$i" -le "$j" ] && echo "$i$j"; done; done)
Eu os escrevo como one-liners adequados para um shell interativo, mas eles funcionam igualmente bem na forma estruturada (o que normalmente seria preferível em um script):
set {0..5}
for i; do
for j; do
[ "$i" -le "$j" ] &&
printf '%d%d\n' "$i" "$j"
done
done