Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
[Unix] :-( 14.11.03 13:56 Число просмотров: 1272
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
> > Может я чего-то не понимаю - но ИМХО чтобы помочь > найти > > ошибку в скрипте надо знать: > > 1. Что должен сделать скрипт при вводе параметра ХХХ > > 2. Что он реально делает при вводе параметра ХХХ > > > > Удачи. > Этот скрипт вообщето показывает дерево каталогов > точнее все папки в директории указанные в параметрах > запуска этого скрипта
Так дерево каталогов или все "папки в директории"?
> т.е. напрмер bash-2.05a$ sh walktree.sh /home > jy gjrf;tn dct gfgrb b afqks d /home > Он покажет файлы и папки в /home
А должен показывать что?
Блин. Дал же шаблон. Цифирька один, цифирька два. Что мешает заполнить?
Кстати, если это вопрос реально нужный а не разминка для мозгов - советую забить на /bin/sh и почитать `man find'
|
<programming>
|
[Unix] Помогите найти ошибку в скрипте 14.11.03 10:32
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman Отредактировано 14.11.03 10:32 Количество правок: 1
|
Это работающий скрипт, но в нем есть логическая ошибка. ее надо найти
#!/bin/sh
# Walk Tree example
# Copyright (c) 2003 ASWL.RU
# $Id: walktree.sh,v 1.3 2003/11/12 21:44:53 proff Exp $
walkdir()
{
for dname in `ls $1`; do
if [ $1 = "/" ]; then
if [ ! -h $1$dname -a -d $1$dname ]; then
echo $1$dname;
walkdir "$1$dname";
fi
else
if [ ! -h $1/$dname -a -d $1/$dname ]; then
echo $1/$dname;
walkdir "$1/$dname";
fi
fi
done
}
[ $# -eq 0 ] &&
{
echo " `basename $0` usage:"
echo " `basename $0` dir-for-walk"
exit 1
}
walkdir $1;
|
|
[Unix] :-) 14.11.03 12:39
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
> Это работающий скрипт, но в нем есть логическая ошибка. ее > надо найти
Может я чего-то не понимаю - но ИМХО чтобы помочь найти ошибку в скрипте надо знать:
1. Что должен сделать скрипт при вводе параметра ХХХ
2. Что он реально делает при вводе параметра ХХХ
Удачи.
|
| |
[Unix] :-) 14.11.03 12:58
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
|
> > Это работающий скрипт, но в нем есть логическая > ошибка. ее > > надо найти > > Может я чего-то не понимаю - но ИМХО чтобы помочь найти > ошибку в скрипте надо знать: > 1. Что должен сделать скрипт при вводе параметра ХХХ > 2. Что он реально делает при вводе параметра ХХХ > > Удачи. Этот скрипт вообщето показывает дерево каталогов
точнее все папки в директории указанные в параметрах запуска этого скрипта
т.е. напрмер bash-2.05a$ sh walktree.sh /home
jy gjrf;tn dct gfgrb b afqks d /home
Он покажет файлы и папки в /home
|
| | |
[Unix] :-) 14.11.03 15:06
Автор: LLL <Алексей> Статус: Member
|
> Этот скрипт вообщето показывает дерево каталогов > точнее все папки в директории указанные в параметрах > запуска этого скрипта > т.е. напрмер bash-2.05a$ sh walktree.sh /home > jy gjrf;tn dct gfgrb b afqks d /home > Он покажет файлы и папки в /home
Файлы он не покажет. А должен?
Вообще хотелось бы заметить, что у скрипта будут проблемы при наличии пробелов (и возможно еще каких-то символов) в именах, встретившихся при обходе или заданных аргументами. Каталоги, чьи имена начинаются с точки оно не посетит (хотя может это фича).
А наибольшее подозрение вызывает использование переменной dname для итерации по циклу с рекурсивным вызовом. В нормальных языках здесь понадобилась бы локальная переменная, а как поступает с экземплярами переменной sh при вызове функций, я навскидку не скажу, а мануалы сейчас читать об этом -- не моя задача.
|
| | | |
[Unix] :-) 14.11.03 19:26
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
> А наибольшее подозрение вызывает использование переменной > dname для итерации по циклу с рекурсивным вызовом. В > нормальных языках здесь понадобилась бы локальная > переменная, а как поступает с экземплярами переменной sh > при вызове функций, я навскидку не скажу, а мануалы сейчас > читать об этом -- не моя задача. В данном конкретном случае - не страшно, потому что при выходе наружу в переменную dname сразу записывается новое значение. А вообще, конечно, так делать действительно нехорошо.
|
| | |
[Unix] :-( 14.11.03 13:56
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
> > Может я чего-то не понимаю - но ИМХО чтобы помочь > найти > > ошибку в скрипте надо знать: > > 1. Что должен сделать скрипт при вводе параметра ХХХ > > 2. Что он реально делает при вводе параметра ХХХ > > > > Удачи. > Этот скрипт вообщето показывает дерево каталогов > точнее все папки в директории указанные в параметрах > запуска этого скрипта
Так дерево каталогов или все "папки в директории"?
> т.е. напрмер bash-2.05a$ sh walktree.sh /home > jy gjrf;tn dct gfgrb b afqks d /home > Он покажет файлы и папки в /home
А должен показывать что?
Блин. Дал же шаблон. Цифирька один, цифирька два. Что мешает заполнить?
Кстати, если это вопрос реально нужный а не разминка для мозгов - советую забить на /bin/sh и почитать `man find'
|
| | | |
[Unix] это задача из института. изложил как в билете 14.11.03 14:02
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
|
|
| | | | |
[Unix] :-)) 14.11.03 14:39
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
Ну тогда извини если обидел. Если из билета тогда понятно. =) А то я читаю и думаю - что за бред! Но боюсь что тут ничем помочь не смогу - не программер.
|
|
|