информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыВсе любят медСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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
<"чистая" ссылка>
Ну тогда извини если обидел. Если из билета тогда понятно. =) А то я читаю и думаю - что за бред! Но боюсь что тут ничем помочь не смогу - не программер.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach