t00t Опубликовано 23 ноября, 2006 Жалоба Поделиться Опубликовано 23 ноября, 2006 Люди. Хелп! очень прошу помощи! мне нужно написать скрипт который бы создавал папки на заданное (введенное с клавы) значение в ширину и глубину. ТО есть допустим ширина 3, глубина три. При запуске у нас появляется три папку, в каждой из этой папки свои три папки, соответственно в тех папках еще по три папки. В ширину я допер как делать. через цикл делал, а вот в глубину не знаю. Помогите плиззз. Уже две недели бьюсь. Я в этом shell плохо разбираюсь как и в программировании. с комментами плиззззз. очень нужно. Ссылка на комментарий Поделиться на другие сайты Поделиться
t00t Опубликовано 24 ноября, 2006 Автор Жалоба Поделиться Опубликовано 24 ноября, 2006 Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно. #!/usr/bin/perl my $width = $ARGV[0]; my $depth = $ARGV[1]; createdirs($depth, '.'); sub createdirs { my ($d, $dir) = @_; my $i; for($i = 0; $i < $width; $i++) { mkdir("$dir/$i", 0777); if($d > 1) { createdirs($d - 1, "$dir/$i"); } } } Ссылка на комментарий Поделиться на другие сайты Поделиться
killogramm Опубликовано 24 ноября, 2006 Жалоба Поделиться Опубликовано 24 ноября, 2006 Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно. Перла не знаю, но интуитивно понятно о чем речь: #!/usr/bin/perl - путь к интерпретатору языкаmy $width = $ARGV[0]; - видимо присваивание переменным значений переданных параметров. Здесь ширинаmy $depth = $ARGV[1]; - здесь глубинаcreatedirs($depth, '.'); - это видимо вызов процедуры createdirs и передача ей параметра глубиныsub createdirs { - сама процедура (начало)my ($d, $dir) = @_; - х/з что, но вроде присваивания двум переменным значения переданного процедуре (глубина)my $i; - видимо инициализация переменной счетчика циклаfor($i = 0; $i < $width; $i++) - оператор цикла (i от 0 до значения ширины, с шагом 1){ - тело цикла (начало) mkdir("$dir/$i", 0777); - вызов функции создания папки (вот тут странность: вроде как мы $dir делим на $i, но $i сначала у нас = 0, значит "/" - означает видимо вычитание) Причем папка создается с правам 777, те открыт доступ на запись/чтение/поиск для всех if($d > 1) - проверка, если $d > 1, то продолжаем, иначе выход { createdirs($d - 1, "$dir/$i"); - вызов рекурсии } - конец проверки} - конец цикла} - конец процедуры Комментарии очень приблизительные, лучше что б кто-нибудь знающий перл меня поправил :( Ссылка на комментарий Поделиться на другие сайты Поделиться
t00t Опубликовано 25 ноября, 2006 Автор Жалоба Поделиться Опубликовано 25 ноября, 2006 Спасибо. Впринципе теперь все понятно.. =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти