The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Определение пустого значения, !*! STX, 29-Янв-09, 01:39  [смотреть все]
Здравствуйте!

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

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

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

  • Определение пустого значения, !*! Serge, 05:14 , 29-Янв-09 (1)
    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

  • Определение пустого значения, !*! phpcoder, 08:40 , 29-Янв-09 (2)
    >Помогите пожалуйста.

    man test (ключ -z)


    • +1, !*! Andrey Mitrofanov, 12:12 , 29-Янв-09 (4)
      $ 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
      $ _
      • +1, !*! vic, 13:37 , 29-Янв-09 (6)
        а вот и йа :)

        >$ 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
        (кто скажет смысл второго варианта вместо первого?)

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

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

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

  • Определение пустого значения, !*! Arpo, 12:55 , 29-Янв-09 (5)
    >[оверквотинг удален]
    > 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 для папок.


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

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

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

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




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

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