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.