Итерирование сценария оболочки по списку подкаталогов - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть папка (назовем ее folder1, которая содержит только подкаталоги. Я хочу написать сценарий оболочки, который повторяет несколько сценариев Python для каждого подкаталога. Как таковой, я должен набрать абсолютный путь к каждому подкаталогувнутри скрипта, но я хочу иметь возможность от cd до folder1 и просто запустить оттуда скрипт оболочки и заставить его автоматически перебирать подкаталоги, независимо от их имени или местоположения folder1.

Текущий код (сохраненный как shellscript.sh):

#! /bin/sh

declare -a arr=("/path/folder1/subdir1"  "/path/folder1/subdir2" "/path/folder1/subdir3" "/path/folder1/subdir4")

for i in "${arr[@]}"
do
    echo "$i"
    python /path/to/pythonscript1.py "$i"
    python /path/to/pythonscript2.py "$i"
done

Затем я могу запустить его, открыв Терминал (Mac OSX v 10.13.6) и запустив sh path/to/shellscript.sh. Я хочу arr объявление в начале скрипта для автоматического заполнения на основе содержимого любого cwd, в котором я нахожусь. Я нашел эту полезную ссылку и смог выполнить ее как отдельную команду в Терминале, но не могу понятьузнать, как включить его в сценарий оболочки. Любые советы?

1 Ответ

0 голосов
/ 27 февраля 2019
    for dir in ./* ./**/*    # list directories in the current directory
    do
        python $dir
    done

. / * - это файлы в каталоге dir, а ./**/* - это файлы в подпапках.

Убедитесь, что в вашем каталоге только файлы python, и все файлы в этом каталоге будут запущены.

...