Вложено для циклов для каталога в скрипте bash - PullRequest
0 голосов
/ 17 марта 2019
for d in dirlist;  
do  
    cd $d  
    echo $PWD "primul"  
    for p in *.HEIC;  
    do  
        echo $PWD "din al doilea"  
        if [ -e "COPY ${p%.*}.jpg" ]; then  
            echo "COPY ${p%.*}.jpg exists"  
        else  
            convert $p "COPY ${p%.*}.jpg"  
            echo "COPY ${p%.*}.jpg created"  
        fi  
    done  
done 

Я написал скрипт для преобразования всех файлов .HEIC в .jpg. Теперь у меня есть структура папок, которая

/main/2019/01  
/main/2019/03  
/main/2018/12  
/main/2018/11  
/main/2018/10  
/main/2018/09  

И я хочу запустить второй для каждого каталога.

Когда я запускаю команды ниже, я получаю только список каталогов и упоминание о том, что нет файлов для преобразования.

Как мне изменить каталог, используя первый для и запустить второй для в этом каталоге?

1 Ответ

0 голосов
/ 17 марта 2019

cd - изменяется на предыдущий каталог.Это одно решение поставить его после первых done (второй для цикла).

pushd и popd с использованием стека для обработки изменений каталога
checkout: https://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...