Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2009, 07:27   #1
MDmitry
 
Регистрация: 05.12.2009
Сообщений: 9
По умолчанию Linux, поиск файлов

Пишу лабу на Linux.
Проверить существование указанного в параметре файла и выдать сообщение о результате поиска (удачно или не очень).

1. Как понять указанного в параметре файла? Смотрел литературу по параметрам, ничего не понял.

echo "Введите каталог"
read name_catalog
echo "Введите имя файла"
read name_file
find name_catalog -name name_file -exec $find_file=1 \;
$find_file=0
if [$find_file -ne 1]
then
echo "Удачно"
else
echo "Не очень удачно"
fi

Выдает ошибки:
=0: not found
find: 'name catalog': No such file or directory

[: 13: missing]

Что нужно исправить? Проблемы с синтаксисом
MDmitry вне форума Ответить с цитированием
Старый 05.12.2009, 13:31   #2
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Параметры скрипта - то же самое, что параметры для обычной программы:
Код:
#my_prog param1 param2
Только в bash скриптах они попадают в особые "системные" переменные:
$1, $2, $3 и т.д., сколько у вас параметров передано.
oleg kutkov вне форума Ответить с цитированием
Старый 05.12.2009, 13:56   #3
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Как понять указанного в параметре файла? Смотрел литературу по параметрам, ничего не понял.
Значит не там смотрел.
Прочти это: http://web.opennet.ru/docs/RUS/bash_scripting_guide/
(пункт: "4.4 Специальные типы переменных")
Цитата:
Проверить существование указанного в параметре файла и выдать сообщение о результате поиска
Необходимо написать скрипт и ему передавать параметры.

Пример скрипта:
Скрипт принимает два параметра:
1) имя директории
2) имя файла
Код:
#!/bin/bash

if [ $# -ne 2 ]; then
  echo "You must give directory and file names as paramaters!"
  exit
fi

DirName=$1
FileName=$2

if [ ! -d $DirName ]; then
  echo "Directory \"$DirName\" doesn't exist!"
  exit
fi

FileCount=0;

for FName in $(find "$DirName" -iname "$FileName" -type f); do
  echo \"$FName\"
  ((FileCount++))
done

echo $FileCount" files are found."
Сохрани скрипт в файле, скажем, FileFinder и
Код:
Вызывай из командной строки так:
bash FileFinder <DirName> <FileName>
Например:
bash FileFinder /home TmpFile
По твоему скрипку.
Ты забыл поставить знак "$" перед name_catalog
Код:
find $name_catalog -name name_file -exec $find_file=1 \;
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 06.12.2009, 23:30   #4
MDmitry
 
Регистрация: 05.12.2009
Сообщений: 9
По умолчанию

Пробовал

DirName=$1
FileName=$2
find /home/dmitry/Документы -name $FileName -print

выводит /home/dmitry/Документы/FileName

find /home/dmitry/Документы -name 1 -print - так всё нормально ищет

В чём причина?

Последний раз редактировалось MDmitry; 06.12.2009 в 23:34.
MDmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Поиск файлов profi Помощь студентам 2 16.06.2009 16:04
Поиск файлов hacknet Общие вопросы Delphi 23 24.11.2008 17:54
Поиск файлов student_63 Общие вопросы Delphi 6 07.03.2008 19:00
поиск файлов KORN Компоненты Delphi 3 12.10.2007 05:42
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27