Se você quisesse executar os scripts em ordem lexicográfica crescente, poderia fazer
for x in *.sql; do
mysql <"$x"
done
Listar os arquivos em ordem descendente pode ser feito facilmente em zsh , graças ao O
qualificador de globo , mas não há recurso correspondente no bash. Em um prompt zsh:
for x in *.sql(On); do
mysql <"$x"
done
A propósito, se seus números não tiverem um 0 à esquerda, você pode usar (nOn)
aqui, para classificar 9 foo.sql
antes de 10 bar.sql
.
Usando apenas programas que estão em uma instalação padrão (mais mysql
), você pode listar os arquivos, classificá-los conforme desejado com sort
(ou diretamente inverta a ordem com tac
) e iterar sobre o resultado.
for x in *.sql; do echo "$x"; done |
tac |
while IFS= read -r script; do mysql <"$script"; done