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

4 комментария. Оставить новый

  • Проверка существования пользователя не точная:
    если существует пользователь, например, test2
    А grep ищем несуществующего пользователя test, то его найдет.

    Ответить
  • Эм, а на практике проверял код?
    Только что создал тестовый файлик с кодом
    grep “test2” /etc/passwd >/dev/null
    if [ $? -ne 0 ]; then
    echo ‘No username found’
    fi
    проверяем:
    [email protected]:~$ bash usr.sh
    No username found
    [email protected]:~$ sh usr.sh
    No username found

    Ответить
  • Пользователь
    16.01.2017 18:49

    grep -x #полное совпадение

    Ответить
  • Дмитрий
    30.03.2017 13:02

    Вот так будет самый точный поиск пользователя:
    grep “^test1:” /etc/passwd
    grep “test1:” /etc/passwd
    test1:x:999:1003:Hi the test1:/home/test1:/bin/bash
    test-test1:x:997:1003:Hi the test-test1:/home/test1:/bin/false
    test1www:x:996:1003:Hi the test1www:/home/test1:/bin/false
    [email protected]:~# grep “^test1:” /etc/passwd
    test1:x:999:1003:Hi the test1:/home/test1:/bin/bash

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Меню