У меня есть каталог с множеством скриптов для генерации фигур. Все сценарии соответствуют шаблону fig * -gen.sh
Я хотел бы иметь скрипт bash (с именем allfig-gen.sh) для вызова всех скриптов генерации фигур. Как я могу это сделать?
У меня есть каталог с множеством скриптов для генерации фигур. Все сценарии соответствуют шаблону fig * -gen.sh
Я хотел бы иметь скрипт bash (с именем allfig-gen.sh) для вызова всех скриптов генерации фигур. Как я могу это сделать?
Ответы:
Если сценарии не требуют параметров или не требуют вызова в определенном порядке, вы сможете достичь этого с помощью простого цикла
#!/bin/bash
for i in $SCRIPT_DIR/fig*-gen.sh
do
./"$i"
done
Предостережение:
чтобы это работало, fig*-gen.sh
файлы должны указывать интерпретатор через #!/bin/bash
строку. Если они этого не делают, вам нужно явно вызвать интерпретатор, заменив ./"$i"
что-то вродеbash ./"$i"
Если вы хотите, чтобы они работали параллельно, и если у вас установлен GNU Parallel http: // www.gnu.org/software/parallel/, вы можете сделать это:
ls ./fig*-gen.sh | parallel
или даже это:
parallel ::: ./fig*-gen.sh
Посмотрите вступительное видео для GNU Parallel, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ
./"$"
как в вашем примере, файлы должны иметь разрешения на выполнение, в то время как при использованииbash ./"$i"
они не имеют.