PDA

Показать полную графическую версию : [решено] Идентификация каталога c помощью shell


programmist72
11-11-2006, 08:47
Люди, стопорнулся по чёрному... понимаю что вопрос чисто ламерский, но всё же...

Есть некий каталог, скажем /A. В нём куча других каталогов. Мне нужно зайти в каждый из них и проверить, есть ли там каталог "readme". Если есть, то пропустить этот шаге. Если нет - то сделать некоторые действия. Иначе говоря, если есть вот такая иерархия: "/A/каталог/readme" - тогда пропустить. Если есть просто "/A/каталог" - тогда выполнить действие.

Как енто реализовать? У меня, в принципе, 50% кода написано (на Shell!!). я не могу только определить каталог readme в подкаталоге.

mar
11-11-2006, 09:14
например:
file -d readme
выдаст readme: directory если найдет и если это каталог
или readme: cannot open (readme), если нет

programmist72
11-11-2006, 16:12
Ага, выдаёт. А можно превратить имя каталога в строку (хотя оно по идее строкой и является ))) и сравнить его со строкой readme? Как это сделать? Если кто знает ткните меня носом в ссылку где всё доступно описано. Читал Advanced Bash Scripting guide. Но там во-первых на английском, во вторых не очень понятно.

programmist72
11-11-2006, 20:16
Всё, проблема решена. :))

ruslandh
11-11-2006, 21:24
programmist72
пожалуйста, коротко о том. как вы её решили :)
PS Я - бы вывод вывод заслал в переменную (не успел ответить :) )
assa=`file -d readme`
или
assa=$ile -d readme)

programmist72
12-11-2006, 20:04
ruslandh
У меня была задача автоматизации. Правда для себя. Я скачиваю с ФТП сайта архив CPAN (ну скрипты перловые, все знают, наверное). Так вот там файлы с расширением .tar.gz и .readme. Внутри папки CPAN множество подпапок. Мне нужно было зайти (скриптом) в каждую из этих подпапок, проверить есть ли там папка readme. Если есть, то пропустить обработку этой папки. Если нет, то создать папку readme и перенести в неё все файлы с расширением .readme. Если интересно, могу кинуть пример такого скрипта. А задачу я решил сравнив имя каталога со строчкой readme. Так на словах немножко непонятно, в скрипте лучше видно.

ruslandh
12-11-2006, 21:39
programmist72
Если есть время как ты всё это сделал, то хорошо-бы на wiki.oszone.net забросить - и тебе полезно и другим польза
PS Правда я пока не понял - как там с регистрацией - только для модеров или для всех :)

Igor_I
12-11-2006, 22:10
programmist72
Если интересно, могу кинуть пример такого скрипта.
Да конечно, начинает немного интересовать программирование на шелл.

programmist72
12-11-2006, 22:14
Люди, а что конкретно вы хотите на wiki.oszone.net увидеть? Описание скрипта или сам файлик? Имейте в виду, что скрипт не универсальный, а адаптирован именно под мои нужды. Хотя... ладно, о том что "хотя" напишу на сайте. :)

mar
12-11-2006, 22:25
PS Правда я пока не понял - как там с регистрацией - только для модеров или для всех
для всех

programmist72
ну сам скрипт, конечно интересен, но можно дать описание и скрипт, как пример (с разбором). Впрочем, главное начать, а дальше можно править, как угодно :)

Igor_I
12-11-2006, 22:53
Я вообще-то (привет yurfed- у) хотел увидеть его здесь, потому как до wiki ждать наверно долго.

mar
13-11-2006, 01:34
Igor_I
ну, я, вообще-то присоединяюсь :) По мне так тоже логичней по-быстрому выложить скрипт и спокойно писать статью в wiki, заодно используя те вопросы, которые могут возникнуть тут

programmist72
13-11-2006, 04:53
Я выложил "статью" на wiki и к ней приложил файл скрипта. Статью ищем в секции "Новые статьи" по названию "Автоматизация в Linux с помощью шелл" :) Автор Programmist72, то бишь ЯЯЯЯЯ :)))))))

ruslandh
13-11-2006, 07:43
http://wiki.oszone.net/index.php/Автоматизация_в_Linux_с_помощью_шелл

PS Чуть-чуть подправил.



В этом скрипте есть только один недостаток: если файлов с расширением *.readme нет и папки тоже нет, он создаст папку и выдаст сообщение о том, что нет файлов с расширением *.readme. Работа скрипта продолжится, но этот небольшой баг я пока не сумел поправить.

Не понял я - "если файлов с расширением *.readme нет и папки тоже нет" - значит есть файл ? Иначе как он маг попасть в проверяемые (из ls).

mar
13-11-2006, 10:06
добавила еще категорию: Категория:Общие проблемы и настройки
(кстати, искать можно по меню: Unix-->Linux и Unix-->Общие проблемы и настройки

programmist72
во-первых, спасибо, пиши еще :)
во-вторых,
Автор Programmist72, то бишь ЯЯЯЯЯ
так подпишитесь :) (в окне редактирования - вторая справа их кнопок наверху, например)




© OSzone.net 2001-2012