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