Как понять, как эта находка с while l oop работает в Bash - PullRequest
1 голос
/ 11 июля 2020

Как мне лучше понять этот синтаксис?

find ~/Documents/project/updates -type d -name "Branch*[0-9]" -maxdepth 1 -mtime -2 -print |\
while read path; do
    dir_name=$(basename $path)
    function_call $dir_name
done

1 Ответ

2 голосов
/ 11 июля 2020
  1. Создать список каталогов с помощью find

    • ~/Documents/project/updates искать каталоги по этому пути
    • -type d только смотреть для "каталогов" (а не файлов, индексных дескрипторов или других типов файлов)
    • -name "Branch*[0-9]" ищите только каталоги, имена которых соответствуют этому подстановочному знаку
    • maxdepth 1 не выглядят ниже, чем на один уровень глубиной
    • -mtime -2 время модификации -2 дня
  2. Теперь, когда у нас есть список, для каждого элемента в этом списке

    • dir_name=$(basename $path) Установите «dir_name» на базовое имя каталога
    • function_call $dir_name Вызовите «function_call» с помощью «$ dir_name»

СИЛЬНОЕ ПРЕДЛОЖЕНИЕ:

Временно добавьте set -xv в начало вашего сценария оболочки и наблюдайте за результатами :)

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