The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Определение пустого значения"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Определение пустого значения"  
Сообщение от STX (ok) on 29-Янв-09, 01:39 
Здравствуйте!

Нужно сконструировать условие в случае пустого значения $FILE, не могу обозначить это самое пустое значение или пустой результат говоря проще. Статус тут всегда будет успешным поэтому определить так невозможно.

for FILE in `find /user/ -cmin -$1`;
  if [ "$FILE" = пустое значение ]
   then
  done
  echo "Files not found" exit  
   else
    do
-----------------

Помогите пожалуйста.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Определение пустого значения"  
Сообщение от Serge (??) on 29-Янв-09, 05:14 
for FILE in `find /user/ -cmin -$1`;
do
  if [ "x$FILE" = "x" ]
  then
       echo "Files not found"
       exit 1
  else
       echo "Files has been found"
done

exit 0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Определение пустого значения"  
Сообщение от const86 (ok) on 29-Янв-09, 11:28 
[ "$FILE" = "" ]
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Определение пустого значения"  
Сообщение от phpcoder email(??) on 29-Янв-09, 08:40 
>Помогите пожалуйста.

man test (ключ -z)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "+1"  
Сообщение от Andrey Mitrofanov on 29-Янв-09, 12:12 
$ X=
$ [ -z "$X" ] && echo Да || echo Нет
Да
$ X=2
$ [ -z "$X" ] && echo Да || echo Нет
Нет
$ # "проверяем" позикс-совместимость! %)
$ sh
sh-3.1$ X=
sh-3.1$ [ -z "$X" ] && echo Да || echo Нет
Да
sh-3.1$ X=3
sh-3.1$ [ -z "$X" ] && echo Да || echo Нет
Нет
sh-3.1$ exit
$ _
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "+1"  
Сообщение от vic (??) on 29-Янв-09, 13:37 
а вот и йа :)

>$ X=
>$ [ -z "$X" ] && echo Да || echo Нет
>Да
>$ X=2
>$ [ -z "$X" ] && echo Да || echo Нет
>Нет

Примечание - двойные кавычки вокруг переменной обязательны, т.к. ключ требует именно строку и не смотря на то что в баше прокатит (иногда) без кавычек, в ином sh не прокатит. Без кавычек результат может быть неправильным.

>$ # "проверяем" позикс-совместимость! %)
>$ sh
>sh-3.1$ X=
>sh-3.1$ [ -z "$X" ] && echo Да || echo Нет
>Да
>sh-3.1$ X=3
>sh-3.1$ [ -z "$X" ] && echo Да || echo Нет
>Нет
>sh-3.1$ exit
>$ _

будь бдителен :) , sh в линухе реализован через bash и его поведение отличается от поведения sh в солярке, бсде и т.п. (к примеру, без кавычек в линуховом sh условие -z проходит, а в соляровском - ошибко), т.е. проверка на позиксность м.б. не совсем корректной :)

зы
Дядьки из autoconf для configure используют:
test -z "$X"
или
"x$VAR" = x
(кто скажет смысл второго варианта вместо первого?)

они ориентируются на максимальную переносимость скрипта, а значит их примеру можно следовать (не бездумно канешна) :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "+1"  
Сообщение от const86 (ok) on 29-Янв-09, 14:53 
>Дядьки из autoconf для configure используют:
>test -z "$X"
>или
>"x$VAR" = x
>(кто скажет смысл второго варианта вместо первого?)
>
>они ориентируются на максимальную переносимость скрипта, а значит их примеру можно следовать
>(не бездумно канешна) :)

Было бы интересно увидеть пример с пояснениями, когда второе работает, а первое - нет.
А то ведь первое читабельнее. Не хочется писать через зад только потому,
что кто-то пустил слух о том, что якобы так портабельнее.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Определение пустого значения"  
Сообщение от Arpo email(ok) on 29-Янв-09, 12:55 
>[оверквотинг удален]
> for FILE in `find /user/ -cmin -$1`;
>  if [ "$FILE" = пустое значение ]
>   then
>  done
>  echo "Files not found" exit
>   else
>    do
>-----------------
>
>Помогите пожалуйста.

А почему бы не исползовать конструкцию while вместо for ???

find /user/ -cmin -$1|while read $FILE
do
     echo "xxx"
done

Если значения есть работаем, нет не работаем?
И потом, или я торможу или... Как может вывод комманды find быть пустым? Если фаил нашелся значить он есть.А если например нужно узнать фаил это или папка, то man test а именно ключ -f для фаилов и -d для папок.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Определение пустого значения"  
Сообщение от vic (??) on 29-Янв-09, 13:51 
>И потом, или я торможу или... Как может вывод комманды find быть
>пустым?

во-во))
не тормозишь, тут эта проверка вообще не нужна (find ессно не возвращает пустых значений) так что можно и for и while по вкусу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Определение пустого значения"  
Сообщение от STX (??) on 29-Янв-09, 21:46 
>>И потом, или я торможу или... Как может вывод комманды find быть
>>пустым?
>
>во-во))
>не тормозишь, тут эта проверка вообще не нужна (find ессно не возвращает
>пустых значений) так что можно и for и while по вкусу.
>

Хм, ну а если по условию файлы не нашлись, тогда какой будет вывод если не пустой?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Определение пустого значения"  
Сообщение от const86 (ok) on 29-Янв-09, 23:12 
>Хм, ну а если по условию файлы не нашлись, тогда какой будет
>вывод если не пустой?

Пустой, и for не сделает ни одной итерации.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Определение пустого значения"  
Сообщение от STX (??) on 30-Янв-09, 21:28 
>>Хм, ну а если по условию файлы не нашлись, тогда какой будет
>>вывод если не пустой?
>
>Пустой, и for не сделает ни одной итерации.

Да, for то не сделает, просто у меня там ещё релоад одного сервиса прописан после этого, каждый раз он будет перезагружаться если не поставить условие.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру