- Определение пустого значения, 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 по вкусу. >Хм, ну а если по условию файлы не нашлись, тогда какой будет вывод если не пустой?
- Определение пустого значения, const86, 23:12 , 29-Янв-09 (10)
>Хм, ну а если по условию файлы не нашлись, тогда какой будет >вывод если не пустой? Пустой, и for не сделает ни одной итерации.
- Определение пустого значения, STX, 21:28 , 30-Янв-09 (11)
>>Хм, ну а если по условию файлы не нашлись, тогда какой будет >>вывод если не пустой? > >Пустой, и for не сделает ни одной итерации. Да, for то не сделает, просто у меня там ещё релоад одного сервиса прописан после этого, каждый раз он будет перезагружаться если не поставить условие.
|