Bash se -e e -s e outros operadores de teste de arquivos

Bash se -e e -s e outros operadores de teste de arquivos
Nos arquivos Linux, os operadores de teste são usados ​​para verificar os atributos associados a um arquivo como: o autor do arquivo, direitos administrativos e propriedade do arquivo, e para verificar se eles são simplificados ou não. Quando estamos lidando com arquivos, torna -se necessário verificar sua existência e se eles contêm algum conteúdo ou não para esse fim; ou se uma declaração for usada junto com os operadores de teste.

Os operadores de teste de arquivos em Bash também são usados ​​para testar os arquivos como o nome explica. Com a ajuda desses operadores, podemos testar diferentes aspectos de um arquivo, como se esse arquivo for gravável ou apenas legível. Existem muitos operadores de teste de arquivo e cada um tem um papel diferente e use. Os operadores de teste de arquivo nos ajudam a evitar erros enquanto scripts em bash. Para executar essa tarefa, usamos uma declaração if-else. A declaração if-else atua como uma ferramenta muito útil para manuseio de erros no script de bash.

O objetivo do operador "-e" é nos dizer se existe um arquivo no diretório especificado ou não. O operador "-s" nos diz que o arquivo não é um tamanho zero, o que significa que esse operador nos diz se o arquivo no diretório especificado contém algum dado ou não. Outros operadores estão acostumados a lidar com arquivos, mas os "-e" e "-s" são os mais importantes e são frequentemente usados.

Como usar os operadores de teste:

Nesta ilustração, tentaremos usar todos os operadores de teste para executar várias tarefas nos arquivos.

Exemplo não. 1: Usando o operador de texto se -e

Neste exemplo, tentaremos usar o operador de teste se -e, que é usado principalmente para verificar se o arquivo existe em um diretório ou não. Agora, primeiro criaremos um novo arquivo.

Linux@linux-virtualbox: ~ $ nano testoperator.sh

Quando executarmos o comando acima, ele abrirá o arquivo vazio agora, escreveremos o código no qual criaremos uma condição de que o arquivo “funcionário.txt ”Existe, ele exibirá o comando ECHO que contém a mensagem“ O arquivo existe ”. Senão, ele executará a mensagem "O arquivo não existe". O File TestOperator conterá o conteúdo mencionado abaixo.

#!/bin/sh
arquivo = "funcionário.TXT"
Se [-e $ arquivo]
então
eco "o arquivo existe"
outro
eco "o arquivo não existe"
fi

Depois de salvar o arquivo usando o comando Bash, executaremos o comando abaixo mencionado que executará o testoperator.Arquivo SH.

Linux@linux-virtualbox: ~ $ Bash testOperator.sh

Quando executamos o comando acima, ele lerá o código do arquivo testoperator que executa e verifique o arquivo no diretório inicial. Nesse caso, não temos nenhum arquivo no diretório, por isso executou a saída abaixo.

Saída:

O arquivo não existe

Agora, primeiro criaremos um novo arquivo chamado “funcionário.TXT". Em seguida, execute novamente o comando para verificar se ele detectará o arquivo ou não. Como mostrado abaixo, desta vez o arquivo existe no diretório inicial.

Agora, vamos executar o comando acima novamente. Desta vez, ele exibe a saída mostrada abaixo na qual a mensagem "Arquivo existe".

Saída:

o arquivo existe

Exemplo não. 2: Usando o operador de texto if -d

Neste exemplo, tentaremos outro operador de teste que é o operador "-d" que é usado para verificar se o arquivo que estamos verificando é um diretório ou não. Desta vez, criaremos um novo diretório que chamamos de "funcionário", como pode ser visto no trecho abaixo.

Agora, modificaremos o “testperator.Arquivo SH ”no qual alteraremos o nome do arquivo“ funcionário.txt "para apenas" funcionário ". Em seguida, passando o operador "-d" na declaração IF junto com o "$ File" que será buscado. E alterando a mensagem, que será exibida como saída, salvaremos o arquivo. Agora, o “testperator.O arquivo sh ”contém o seguinte conteúdo.

#!/bin/sh
file = "funcionário"
Se [-d $ arquivo]
então
eco "o funcionário é um diretório"
outro
eco "o funcionário não é um diretório"
fi

Depois de modificar o “testperator.SH ”, executaremos o comando bash junto com o nome do arquivo:

Linux@linux-virtualbox: ~ $ Bash testOperator.sh

Quando o comando acima é executado, ele exibirá a saída mostrada abaixo, na qual imprime a mensagem que é:

Saída:

O funcionário é um diretório

Exemplo não. 3: Usando o operador de texto if -s

Neste exemplo, tentaremos usar o operador "-s" que é usado para verificar se o arquivo contém algum conteúdo ou não. Para isso, usaremos o arquivo já criado que usamos no Exemplo 1 chamado “funcionário.TXT". Vamos primeiro modificar o arquivo testoperator.SH em que passaremos a opção "-s" junto com o nome do arquivo para a nossa instrução if e atribuirá o arquivo "funcionário.TXT". Além disso, ele mudará a mensagem que será exibida como uma saída.

#!/bin/sh
arquivo = "funcionário.TXT"
Se [-d $ arquivo]
então
eco "funcionário.txt está vazio "
outro
eco "funcionário.txt não está vazio "
fi

Agora, salvaremos e fecharemos o arquivo “TestOperator.sh ”e execute o comando mencionado abaixo no terminal.

Linux@linux-virtualbox: ~ $ Bash testOperator.sh

Quando o comando acima for executado, ele executará a declaração else porque o funcionário.txt contém o conteúdo. Então, ele ignora a declaração então ecoar o comando.

Saída:

funcionário.txt não está vazio

Agora, removeremos o conteúdo do “funcionário.txt ”e depois execute o comando novamente. Quando o comando acima é executado mais uma vez, ele exibe a mensagem então declarações porque não contém nenhum conteúdo. O exemplo abaixo é a saída do comando que executamos após a exclusão do conteúdo do arquivo.

Saída:

funcionário.txt está vazio

Exemplo não. 4: Usando o operador de texto if -r

Neste exemplo, implementaremos outro operador de teste que é "-r". Este operador é usado para verificar se o arquivo é legível para o usuário ou não. Para isso, modificaremos o TestOperator.Arquivo TXT substituindo o operador "-d" por "-r". Ele também alterará a mensagem de saída que é se o arquivo for legível. Ele exibirá a mensagem “funcionário.txt é legível e se o arquivo não estiver legível, ele exibirá a instrução else. Agora, o “testperator.txt ”contém o seguinte conteúdo:

#!/bin/sh
arquivo = ”funcionário.TXT"
Se [-R $ FILE]
então
eco “funcionário.txt é legível ”
outro
eco “funcionário.txt é legível “
fi

Agora, executaremos o comando abaixo para executar o código escrito dentro dele.

Linux@linux-virtualbox: ~ $ Bash testOperator.sh

Depois de executar o comando acima, a saída exibida abaixo será impressa no terminal.

Saída:

funcionário.txt é legível

Conclusão

Discutimos a parte mais importante do sistema de arquivamento, os operadores de teste. Enquanto trabalham com arquivos, os operadores de teste são a utilidade mais essencial fornecida por pacotes Linux. Depois de apresentar o objetivo dos operadores de teste, nós os explicamos implementando esses operadores em vários exemplos.