UID_ROOT=0 if [ "$UID" -ne "$UID_ROOT" ] then echo "Для работы требуются права root" exit 1 fi
if [ -z "$1" ] then echo "Значение не задано" exit 1 fi
if [[ -z "$1" || -z "$2" ]] then echo "Значение не задано" exit 1 fi
if [ ! -d "$DIR" ]; then echo "Директория не верна" exit 1 fi
if [ ! -e "$FILE" ]; then echo "Файл не найден" exit 1 fi
if ! [[ -d "$FTPDIR" && -w "$FTPDIR" ]]; then echo "Директория не верна или отсутствуют права для записи" exit 1 fi
== Проверка существования файла, а также есть есть права на чтение и выполнение. ==
Если условия не выполняются, то выполнится exit
test -x /usr/sbin/ || exit 1
grep "^$username:" /etc/passwd >/dev/null if [ $? -ne 0 ]; then echo "Пользователь не найден" exit 1 fi
[ A -eq B ] # равно [ A -ne B ] # не равно [ A -gt B ] [ A -lt B ] [ A -ge B ] [ A -le B ] (( A < B )) (( A <= B )) (( A > B )) (( A >= B ))
[ A = B ] [ A == B ] [ A != B ] [ A \< B ] [ A \> B ] [ -z A ] # строка пустая? [ -n A ] # строка не пустая?
-e Файл существует -f Обычный файл -s Ненулевой размер файла -d Является каталогом -b Является блочным устройством (cdrom) -c Является символьным устройство -p Является каналом -h Является символической ссылкой -L Является символической ссылкой -S Является сокетом -t 0 Является stdin -t 1 Является stdout -r Доступен для чтения -w Доступен для записи -x Доступен для исполнения -g Есть sgid -u Есть suid -k Есть sticky bit -O Я — владелец? -G Моя группа — владелец? -N Файл был модифицирован после чтения? F1 -nt F2 F1 новее чем F2? F1 -ot F2 F1 старее чем F2? F1 -ef F2 F1 является жесткой ссылкой F2?
if [[ $file =~ ^[0-9]+\.jpg$ ]] ; then echo $file; else echo '!' $file; fi
Замечание - чтобы использовать операнды, скобки должны быть двойные [[ ... ]] Пример:
if [ "$1" != 'help' ] || ["$1" != 'auto'] || [ "$1" != 'toftp' ] || [ "$1" != 'tolocal' ] || [ "$1" != '' ] then echo "" echo "Неверный параметр $1" exit 1 else param=$1 fi;