Created
May 20, 2011 18:28
-
-
Save dzhulk/983491 to your computer and use it in GitHub Desktop.
Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Объявляется функция func, которя обходит | |
| # католог, который передан в качестве аргумента, | |
| # и показывает все файлы в нем и в его подкаталогах | |
| func(){ | |
| for fn in `ls $1` # цикл по значениям которые возвращает комманда ls, $1 - это аргумент ф-и | |
| do | |
| if [ "$fn" != "." ] # Условие: если $fn не текущий каталог | |
| then | |
| file="$1/$fn" # присваиваем переменной file путь к файлу/папке | |
| echo $file # выводим на экран | |
| if [ -d "$file" -a ! -h "$file" ] # Условие: если $file каталог и он существует и не символическая ссылка | |
| then # Тогда | |
| func $file # Рекурсия. Ф-я вызывает сама себя с аргументом $file | |
| fi | |
| fi # Закрываем условия | |
| done | |
| return 1 # Ф-я возвращает 1, как статус успешного завершения | |
| } | |
| if [ -z "$1" ] # Если длинна аргумента равна 0 | |
| then | |
| func `pwd` # тогда вызываем ф-ю func, аргумент ф-и будет текуший каталог из которога она запускается (результат рабтоты pwd) | |
| elif [ -d "$1" ] # Если аргумент это директория | |
| then | |
| func "$1" # тогда передаем ее в func | |
| else # В других случаях пишем "Error" | |
| echo "Error!" | |
| fi | |
| exit 0 # Завершаем скрипт со статусом true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment