Jump to content

Скриптик для linux


Recommended Posts

Люди. Хелп! очень прошу помощи!

мне нужно написать скрипт который бы создавал папки на заданное (введенное с клавы) значение в ширину и глубину. ТО есть допустим ширина 3, глубина три. При запуске у нас появляется три папку, в каждой из этой папки свои три папки, соответственно в тех папках еще по три папки.

В ширину я допер как делать. через цикл делал, а вот в глубину не знаю. Помогите плиззз. Уже две недели бьюсь. Я в этом shell плохо разбираюсь как и в программировании. с комментами плиззззз.

очень нужно.

Link to comment
Share on other sites

Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно.

#!/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");

}

}

}

Link to comment
Share on other sites

Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно.

Перла не знаю, но интуитивно понятно о чем речь:

#!/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"); - вызов рекурсии	}  - конец проверки} - конец цикла} - конец процедуры

Комментарии очень приблизительные, лучше что б кто-нибудь знающий перл меня поправил :(

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...