2013-04-26 2 views
0

Я написал сценарий fortran, который я хотел бы запустить в более чем 200 каталогах. Все каталоги называются case_1, case_2 и т. Д. Я хотел знать, есть ли команда, которую я могу запустить, чтобы этот скрипт выполнялся во всех этих подкаталогах. Я не хочу выполнять эту команду 200 раз.Выполнение одной и той же команды в нескольких подкаталогах

Спасибо!

+0

отрегулируйте вашу команду/скрипт, дайте ему принять параметр/аргумент, который является каталогом, затем вы можете либо выполнить цикл, либо использовать 'find | xargs cmd' – Kent

+0

@HighPerformanceMark Я бы хотел написать сценарий BASH, который запускает программу Fortran в каждом из 200 директоров. Большое спасибо. – user2044576

+0

Привет, Кент, не могли бы вы подробно остановиться на примере? Я не так хорошо знаком с командой find, хотя она кажется мощным инструментом. – user2044576

ответ

1

GNU parallel может быть полезен здесь. Непроверенные:

parallel 'cd {} && yourProgram' ::: case_* 
+0

Установка 10 секунд: wget -O - pi.dk/3|sh –

0

Похоже, вы хотите что-то вроде этого:

for dir in case_* 
do 
    cd $dir 
    /path/to/fortran/command 
    cd .. # <- EDIT: This brings you back to the original directory 
done 

Это должно вам начать работу.

+0

Вам не нужен компакт-диск? Или Баш позаботится об этом? – agentp

+0

@george Правильно, должен быть 'cd' обратно в исходный каталог – SethMMorton

Смежные вопросы