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 комментария

  • Дмитрий
    2 года назад

    Вот так будет самый точный поиск пользователя:
    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

  • Пользователь
    2 года назад

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

  • username
    5 лет назад

    Эм, а на практике проверял код?
    Только что создал тестовый файлик с кодом
    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

  • test
    5 лет назад

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

Комментировать

Добавить комментарий для Дмитрий Отменить ответemail не будет опубликован