Bash проверки существования файла, директории, пользователя

Проверка существования файла:
if ! [ -f /path/to/file ]; then
echo 'No file'
fi

Проверка существования директории:
if ! [ -d /path/directory/ ]; then
echo 'No directory'
fi

Проверка существования пользователя:
grep "username:" /etc/passwd >/dev/null
if [ $? -ne 0 ]; then
echo 'No username found'
fi

сравнение целых чисел

-eq
равно

if [ "$a" -eq "$b" ]

-ne
не равноif [ "$a" -ne "$b" ]

-gt
большеif [ "$a" -gt "$b" ]

-ge
больше или равноif [ "$a" -ge "$b" ]

-lt
меньшеif [ "$a" -lt "$b" ]

-le
меньше или равноif [ "$a" -le "$b" ]

<
меньше (внутри двойных круглых скобок )(("$a" < "$b"))

<=
меньше или равно (внутри двойных круглых скобок)(("$a" <= "$b"))

>
больше (внутри двойных круглых скобок)(("$a" > "$b"))

>=
больше или равно (внутри двойных круглых скобок)(("$a" >= "$b"))

сравнение строк

=
равно

if [ "$a" = "$b" ]

==
равноif [ "$a" == "$b" ]

Синоним оператора =.

[[ $a == z* ]]    # истина, если $a начинается с символа "z" (сравнение по шаблону)
[[ $a == "z*" ]]  # истина, если $a равна z*

[ $a == z* ]      # имеют место подстановка имен файлов и разбиение на слова
[ "$a" == "z*" ]  # истина, если $a равна z*

# Спасибо S.C.
!=
не равноif [ "$a" != "$b" ]

Этот оператор используется при поиске по шаблону внутри [[ … ]].

<
меньше, в смысле величины ASCII-кодовif [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

Обратите внимание! Символ «<» необходимо экранировать внутри [ ].

>
больше, в смысле величины ASCII-кодовif [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

Обратите внимание! Символ «>» необходимо экранировать внутри [ ].

См. Пример 25-6 относительно применения этого оператора сравнения.

-z
строка «пустая», т.е. имеет нулевую длину
-n
строка не «пустая».
Смотрите на сайте: купить 1с москва . Важная информация.
  1. Пока комментариев нет.

  1. Пока что обратных ссылок нет.