Exemplos de checagens com If then else

Veja a seguir diversas checagens utilizando if then else, uma das verificações mais importantes em shellscript.

Você pode aprender mais sobre esse tipo de checagens com o livro: Shell Linux do Aprendiz ao Administrador.

O conteúdo a seguir também está disponível através da “ferramenta de trechos” mais conhecida como “snippets”, clique aqui para conhecer melhor essa ferramenta.

 


-e Arquivo, diretório, link, ou arquivo especial existe

if [ -e "/bin/bash" ]; then
    echo "O arquivo ou diretório existe"
else
    echo "O arquivo ou diretório não existe"
fi

-f Arquivo existe

if [ -f "/bin/bash" ]; then
    echo "O arquivo existe"
else
    echo "O arquivo não existe"
fi

! -e Arquivo, diretório, link, ou arquivo especial NÃO existe

if [ ! -e "/bin/bash" ]; then
    echo "O arquivo ou diretório não existe"
else
    echo "O arquivo ou diretório existe"
fi

! -f Arquivo não existe

if [ ! -f "/bin/bash" ]; then
    echo "O arquivo não existe"
else
    echo "O arquivo existe"
fi

!= Diferente

if [ "0" != "1" ]; then
    echo "A desigualdade é verdadeira"
else
    echo "A desigualdade não é verdadeira"
fi

-d Diretório existe

if [ -d "/boot" ]
then
    echo "O diretório existe"
else
    echo "O diretório NÃO existe"
fi

! -d Diretório NÃO existe

if [ ! -d "/boot" ]
then
    echo "O diretório NÃO existe"
else
    echo "O diretório existe"
fi

= Igual

if [ "1" = "1" ]; then
    echo "A igualdade é verdadeira"
else
    echo "A igualdade não é verdadeira"
fi

-ge Número maior ou igual

if [ "1" -ge "2" ]; then
    echo "É maior ou igual"
else
    echo "Não é maior ou igual"
fi

-gt Número maior que

if [ "2" -gt "1" ]; then
    echo "É maior que"
else
    echo "Não é maior que"
fi

-ot Arquivo ou diretório é mais antigo

if [ "arquivo1" -ot "arquivo2" ]
then
    echo "O arquivo é mais antigo."
else
    echo "O arquivo NÃO é mais antigo."
fi

-nt Arquivo ou diretório é mais recente

if [ "arquivo2" -nt "arquivo1" ]
then
    echo "O arquivo é mais recente."
else
    echo "O arquivo NÃO é mais recente."
fi

-le Número menor ou igual

if [ "1" -le "2" ]; then
    echo "É menor ou igual"
else
    echo "Não é menor ou igual"
fi

-lt Número menor que

if [ "1" -lt "2" ]; then
    echo "É menor que"
else
    echo "Não é menor que"
fi

! -G Confere se o arquivo ou diretório NÃO pertence a um grupo que o usuário que está executando o script faz parte

if [ ! -G "$HOME" ]
then
    echo "O arquivo ou diretório NÃO pertence a um grupo que o usuário $USER também pertence."
else
    echo "O arquivo ou diretório pertence a um grupo que o usuário $USER também pertence."
fi

! -O Arquivo ou diretório NÃO pertence ao usuário que está executando o script

if [ ! -O "$HOME" ]
then
    echo "O arquivo ou diretório NÃO pertence ao usuário $USER."
else
    echo "O arquivo ou diretório pertence ao usuário $USER."
fi

-w Arquivo ou diretório possui permissão de escrita

if [ -w "/etc" ]
then
    echo "O arquivo ou diretório possui permissão de gravação para o usuário $USER."
else
    echo "O arquivo ou diretório NÃO possui permissão de gravação para o usuário $USER."
fi

-x O arquivo possui permissão de execução

if [ -x "/bin/bash" ]
then
    echo "O arquivo possui permissão de execução."
else
    echo "O arquivo NÃO possui permissão de execução."
fi

-r O arquivo ou diretório possui permissão de leitura

if [ -r "/etc" ]
then
    echo "O arquivo ou diretório possui permissão de leitura para o usuário $USER."
else
    echo "O arquivo ou diretório NÃO possui permissão de leitura para o usuário $USER."
fi

Confere se o usuário tem permissões de root (administrador)

if test $(id -u) != 0
then                 
    echo "Usuário sem permissão de root, cancelando o processo."
    exit                     
fi

-G O arquivo ou diretório pertence a um grupo que o usuário que está executando o script faz parte

if [ -G "$HOME" ]
then
    echo "O arquivo ou diretório pertence a um grupo que o usuário $USER também pertence."
else
    echo "O arquivo ou diretório NÃO pertence a um grupo que o usuário $USER também pertence."
fi

-O Arquivo ou diretório pertence ao usuário que está executando o script

if [ -O "$HOME" ]
then
    echo "O arquivo ou diretório pertence ao usuário $USER."
else
    echo "O arquivo ou diretório NÃO pertence ao usuário $USER."
fi

! -w O arquivo ou diretório NÃO possui permissão de escrita

if [ ! -w "/etc" ]
then
    echo "O arquivo ou diretório NÃO possui permissão de gravação para o usuário $USER."
else
    echo "O arquivo ou diretório possui permissão de gravação para o usuário $USER."
fi

! -x O arquivo NÃO possui permissão de execução

if [ ! -x "/bin/bash" ]
then
    echo "O arquivo NÃO possui permissão de execução."
else
    echo "O arquivo possui permissão de execução."
fi

! -r O arquivo ou diretório NÃO possui permissão de leitura

if [ ! -r "/etc" ]
then
    echo "O arquivo ou diretório NÃO possui permissão de leitura para o usuário $USER."
else
    echo "O arquivo ou diretório possui permissão de leitura para o usuário $USER."
fi

-z a variável é nula

if [ -z "$variavelX" ]
then
    echo "A variável está vazia."
else
    echo "A variável NÃO está vazia."
fi

A variável não é nula

if [ "$variavelX" ]
then
    echo "A variável existe."
else
    echo "A variável não existe"
fi