Страница 1 из 1
Проверка существования директории
Добавлено: 2013-03-25 15:02:50
Volodymyr
Нужно проверить наличие директории. Если директории нету, выйти из скрипта. Если есть - то продолжить.
Код: Выделить всё
#!/bin/sh
if [ ! -d "/data/AAA/BBB"]
then
exit
fi
....
В результате пишет
[: missing ] и продолжает роботу, директории нету. Что не так в конструкции?
Re: Проверка существования директории
Добавлено: 2013-03-25 15:51:45
ChihPih
Пробел вроде как нужен между закрывающей квадратной скобкой и последним символом слева.
Re: Проверка существования директории
Добавлено: 2013-03-25 18:38:46
rayder
да да, именно так

Re: Проверка существования директории
Добавлено: 2013-03-26 8:38:20
Volodymyr
Спасибо!
Re: Проверка существования директории
Добавлено: 2013-04-17 9:17:28
pimlab
а как сделать, если нет , то создать папку?
Re: Проверка существования директории
Добавлено: 2013-04-17 9:44:42
ChihPih
Условие что в первом посте + mkdir
Re: Проверка существования директории
Добавлено: 2013-04-17 10:08:52
pimlab
ChihPih писал(а):Условие что в первом посте + mkdir
Код: Выделить всё
#!/bin/sh
if [ ! -d "/data/AAA/BBB" ]
then
mkdir -p "/data/AAA/BBB"
fi
....
так чтоли ?
Re: Проверка существования директории
Добавлено: 2013-04-17 10:20:44
kpp
Да, так.
Что смущает?
Еще можно\нужно проверить код отработки утилиты mkdir.
Re: Проверка существования директории
Добавлено: 2013-04-17 10:34:18
pimlab
kpp писал(а):Да, так.
Что смущает?
Еще можно\нужно проверить код отработки утилиты mkdir.
Код: Выделить всё
#!/bin/sh
if [ ! -d "/data/AAA/BBB" ]
then
mkdir -p "/data/AAA/BBB"
fi
if [ ! -d "/data/AAA/BBB" ]
then
exit
fi
так чтоли ?
смущает, то что я не понимаю, что делаю...
сейчас просто тупо скрипт создает каждый раз папку
решил переделать, а тут на тебе сразу , то что нужно

Re: Проверка существования директории
Добавлено: 2013-04-17 10:41:01
kpp
Вообще-то проверить выполнение любой утилиты:
Код: Выделить всё
if [ $? -eq 0 ]
then
echo "OK"
else
echo "ERROR"
fi
Re: Проверка существования директории
Добавлено: 2013-04-17 15:23:19
FreeBSP
иф сам по себе проверяет код выхода. оборачивать в тест не обязательно
Код: Выделить всё
#!/bin/sh
dir="/data/AAA/BBB"
if [ ! -d $dir ]; then
echo "Dir $dir is not exist. Trying mkdir"
if mkdir -p $dir; then
echo "Dir $dir created"
else
echo "Dir $dir create FAILED"
fi
else
echo "Dir $dir is exist"
fi
Re: Проверка существования директории
Добавлено: 2013-04-17 17:16:52
pimlab
Спасибо !
в итоге скрипт такой
Код: Выделить всё
#! /bin/sh
dir="/tmp/snmp"
if [ ! -d $dir ]; then
echo "Dir $dir is not exist. Trying mkdir"
if mkdir -p $dir; then
echo "Dir $dir created"
else
echo "Dir $dir create FAILED"
exit
fi
else
echo "Dir $dir is exist"
fi
# update smart parameters
for devfull in /dev/ad?; do
dev=`basename $devfull`
echo "$devfull"
/usr/local/sbin/smartctl -n idle -a $devfull >$dir/smart-$dev.TMP
mv $dir/smart-$dev.TMP $dir/smart-$dev
done
Re: Проверка существования директории
Добавлено: 2013-04-17 18:25:47
GhOsT_MZ
А разве так не будет работать? Выглядит значительно изящней.
Re: Проверка существования директории
Добавлено: 2013-04-17 21:49:43
FreeBSP
на ифах нагляднее, учитывая
pimlab писал(а):
смущает, то что я не понимаю, что делаю...