Vamos usar um loop for para gerar os números inteiros de 1 a 24, usar cd
em um subshell para alterar o diretório para os subdiretórios e executar o script:
for (( i = 1; i <= 24; ++i )); do
( cd "PKA$i/timestep_size/v_0.001/250eV" && ../ovitos /path/to/silica_defects.py )
done
Ao usar um subshell, você evita "alterar novamente" para um diretório antigo antes de usar cd
para o próximo subdiretório. Com &&
, você também evita tentar executar o programa se o diretório, por algum motivo, não existir.
Obviamente, você também pode fazer
for i in {1..24}; do
( cd "PKA$i/timestep_size/v_0.001/250eV" && ../ovitos /path/to/silica_defects.py )
done
... mas eu não gosto da sintaxe {start..end}
por razões estéticas, e também não dá a você a oportunidade de ser mais flexível com o jeito que você quer fazer o loop (em outras situações).