![]() |
Лабораторная по Линуксу, по-быстрому :)
Кароче, тема такая. Тут из лабораторных по линуксу попалась одна по программированию под shell. Читать и перечитывать книги неохота. А одну программку маленькую написать все таки надо :) Естественно она у меня не получается.
Задача следующая: Есть программа, передаем в неё два параметра: первый - каталог, второй - "ключ". Программа должна вывести на экран все файлы/каталоги которые соотвествуют даному ключу. В лабораторной пишут, что имеются следующие ключи: r - файл существует и разрешён для чтения; .... f - "простой" файл; d- каталог. Вот что у меня получилось: Код:
$k=0 |
если "ключ" совпадает с ключем команды test - то я бы сделал так:
Код:
for file in "$1"/*test делает свое дело, и если код возврата был нулевой, тогда выводится строка с echo, если надо имя файла с относительным путем - тогда можно без basename, но тогда всякие ../path/to/back/../../../ будут в имени файла, забыл команду которая преобразует в нормальный путь и имя файла. Код:
## каталоги |
Спасибо. Да и ещё одно, какой ключ для скрытых файлов ? Лучше подсчитать сколько их там.
|
Цитата:
|
Как же все таки подсчитать сколько файлов, а не просто выводить их?
|
если надо посчитать, тогда да... счетчик
k="0" for file in `ls -a "$1"/*` do test -$2 "$file" && k=$(( k+1 )) done echo $k |
Не считает )
|
| Время: 14:36 |