Автор Гілка: Питання по Shell: читання вмісту теки  (Прочитано 2510 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Перепрошую, бо не знаюся на мові shell, виникла така задача з написання скрипта, який:
1. cd Folder
2. make
3. Заходить (в сенсі cd) в кожну теку, що знаходиться в теці Folder (не знаю, як це реалізувати, цикл я якийсь напишу, а як отримати назви тек у теці Folder?)
4. в кожній теці робить п. 2-3

до команди make прошу не прив"язуватися, я навів її як приклад.
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Praporshic

  • Гість
Re: Питання по Shell: читання вмісту теки
« Відповідей #1 : 2007-04-27 15:11:57 »
man find.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Питання по Shell: читання вмісту теки
« Відповідей #2 : 2007-04-27 15:13:01 »
#!/bin/bash

for I in /path/to/dir/*
do
  # Якщо I - це каталог
  [ -d "$I" ] && (
    # у новій підоболонці
    
    # Зайти у каталог
    cd "$I"
    # Виконати команду
    #make
    pwd

    # Повернутися у стару оболонку зі старим робочим каталогом і змінними
  )
done

« Змінено: 2007-04-27 15:13:49 від lvm »
[Fedora Linux]

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Питання по Shell: читання вмісту теки
« Відповідей #3 : 2007-04-27 15:17:30 »
#! /bin/bash

#* dothing тека
dothing ()
{
    pushd "${*}"

    make

    local item
    for item in ${PWD}/* ; do
        if [ -d "${item}" ] ; then
            dothing "${item}"
        fi
    done

    popd
}

dothing "/some_root_folder"


Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Питання по Shell: читання вмісту теки
« Відповідей #4 : 2007-04-27 15:38:13 »
дякую!
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Питання по Shell: читання вмісту теки
« Відповідей #5 : 2007-04-27 18:25:28 »
#! /bin/bash

#* dothing тека
dothing ()
{
    pushd "${*}"

    make

    local item
    for item in ${PWD}/* ; do
        if [ -d "${item}" ] ; then
            dothing "${item}"
        fi
    done

    popd
}

dothing "/some_root_folder"


Якщо зустрінеться зациклене посилання (а вони зустрічаються досить часто, напр. я часто бачив "src" -> "." або "include" -> "." ) то процедура зациклиться. Краще вже find.
[Fedora Linux]