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

Оцените статью
( Пока оценок нет )

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

  1. test

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

    Ответить
  2. username

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

    Ответить
  3. Пользователь

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

    Ответить
  4. Дмитрий

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

    Ответить