Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает условный оператор if

76K
07 ноября 2011 года
Ruffstone
1 / / 07.11.2011
Код:
#!/bin/bash
# Script gets two parameters. The first of them is directory The second - date.
archive () {
    for file in $1/*; do
        if [ -f file && date -r $file +%D -eq $2 ]# Here
        then
            echo 'work';
        fi;
        [ -d "$file" ] && archive $file
    done;
}
archive $1;
exit 0;


В чем я ошибся? Спасибо
278
07 ноября 2011 года
Alexander92
1.1K / / 04.08.2008
 
Код:
[ -f $file ] && if [ `date -r $file +%d` -eq $2 ]
then
  # ...
fi;
412
07 ноября 2011 года
grgdvo
323 / / 04.07.2007
В функции archive параметр $2 скорее всего понимается как второй аргумент функции, а не командной строки.
Он у вас не заполняется. Проверьте это.

И вот это в помощь: Документация http://tldp.org/LDP/abs/html/
14
07 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
archive "$@"

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог