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 Спасибо. Впринципе теперь все понятно.. =) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.