URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9657
[ Назад ]

Исходное сообщение
"Скрипт на Shell"

Отправлено GeKo , 27-Мрт-13 20:23 
Нужно сделать скрипт на Shell что бы он выполнял 2 вещи:
1. Рекурсивный обход указанного каталога и вывод на экран полных путей поддиректорий.
2. Программа должна обеспечивать возможность установки режима подтверждения.

Вот что у меня получилось:
#new [-i] [prefix]
if [ $# = 0 ]
then echo "i'v done nothing"; exit
fi
if [ $1 = "-?" ]
then echo "use new [-i] [prefix]"; exit
fi
if [ $1 = "-i" ]
then i=1; shift
else i=0
fi
echo "i=$i \$1=$1 \$#=$#"
proga()
#if [ $# = 1 ]
#then
for a in $1/*; do
test -d $a && proga $a
if [ i = 1 ]
then
echo i=$i
echo "vidat' put'? (y,n)"
read k
if [ $k = y ]
then
cd $1
pwd
cd ~
elif [ $k = n ]
then cd ~
fi
else
cd $1
pwd
cd ~
fi
done
#fi
proga $1


Содержание

Сообщения в этом обсуждении
"Скрипт на Shell"
Отправлено pavlinux , 27-Мрт-13 20:39 
> Нужно сделать скрипт на Shell что бы он выполнял 2 вещи:
> 1. Рекурсивный обход указанного каталога и вывод на экран полных путей поддиректорий.

find . -type d;

> 2. Программа должна обеспечивать возможность установки режима подтверждения.

Установки режима подтверждения куда и подтверждения чего?


"Скрипт на Shell"
Отправлено GeKo , 27-Мрт-13 20:54 
>> Нужно сделать скрипт на Shell что бы он выполнял 2 вещи:
>> 1. Рекурсивный обход указанного каталога и вывод на экран полных путей поддиректорий.
> find . -type d;

а как ему задать параметр с каталогом?

>> 2. Программа должна обеспечивать возможность установки режима подтверждения.
> Установки режима подтверждения куда и подтверждения чего?

нужно или нет выводить пути у директорий.

и еще забыл:
3. При вводе ? знака должна выводится подсказка.


"Скрипт на Shell"
Отправлено PavelR , 27-Мрт-13 21:44 
>>> Нужно сделать скрипт на Shell что бы он выполнял 2 вещи:
>>> 1. Рекурсивный обход указанного каталога и вывод на экран полных путей поддиректорий.
>> find . -type d;
> а как ему задать параметр с каталогом?
>>> 2. Программа должна обеспечивать возможность установки режима подтверждения.
>> Установки режима подтверждения куда и подтверждения чего?
> нужно или нет выводить пути у директорий.
> и еще забыл:
> 3. При вводе ? знака должна выводится подсказка.

иди методичку почитай, там написано всё.


"Скрипт на Shell"
Отправлено pavlinux , 28-Мрт-13 01:53 
>>> 1. Рекурсивный обход указанного каталога и вывод на экран полных путей поддиректорий.
>> find . -type d;
> а как ему задать параметр с каталогом?

find $1 -type d;

>>> 2. Программа должна обеспечивать возможность установки режима подтверждения.
>> Установки режима подтверждения куда и подтверждения чего?
> нужно или нет выводить пути у директорий.

В UNIX такого не бывает. В UNIX добавляют флаг, если нужно поведение отличное от дефолтного.

> и еще забыл:
> 3. При вводе ? знака должна выводится подсказка.

А препод возмет и


mkdir ?

чё будешь делать? :)

"Скрипт на Shell"
Отправлено GeKo , 28-Мрт-13 06:07 
>[оверквотинг удален]
>> нужно или нет выводить пути у директорий.
> В UNIX такого не бывает. В UNIX добавляют флаг, если нужно поведение
> отличное от дефолтного.
>> и еще забыл:
>> 3. При вводе ? знака должна выводится подсказка.
> А препод возьмет и
>
 
> mkdir ?
>

> чё будешь делать? :)

Спасибо за уроки и за шутки)
А если не сложно что все таки в скрипте не правильно?


"Скрипт на Shell"
Отправлено erera22 , 28-Мрт-13 16:58 
pp() {
   if [ "$2" -eq 1 ]; then
      echo "Would you like to print path?"
      read p
      test ! -z "$p" || return 0
   fi
  
   echo "$1"
   return 0
}

go() {
   pp "$1/$e" $i
   for e in `ls -a $1/`
   do
      [ "$e" != "." -a "$e" != ".." ] || continue
      if [ -d "$1/$e" -a ! -L "$1/$e" ]; then
         go "$1/$e"
      fi
   done
}

test -d "$1" || exit 1
i=0
test -z "$2" || i=1
go "$1" "$i"
exit 0

Осталось это объяснить преподавателю ;)


"Скрипт на Shell"
Отправлено GeKo , 31-Мрт-13 10:10 
>[оверквотинг удален]
>          go "$1/$e"
>       fi
>    done
> }
> test -d "$1" || exit 1
> i=0
> test -z "$2" || i=1
> go "$1" "$i"
> exit 0
> Осталось это объяснить преподавателю ;)

Спасибо))
А может все таки кто то глянет что в скрипте не так? а то интересно, и не понятно.