Verifique se o arquivo não existe

Verifique se o arquivo não existe
Bash Script é uma linguagem de programação que pode ser usada rapidamente no Linux e em outros ambientes do sistema operacional para automatizar suas tarefas. Ao escrever scripts Bash com frequência, precisamos operar em arquivos no sistema de arquivos. No entanto, se nosso código tentar acessar um arquivo e ele não existir, podemos obter um erro inesperado. Portanto, sua melhor prática para verificar a existência de arquivos antes de tentar fazer referência ao arquivo em scripts bash.

Exemplo 01

Temos que adicionar o suporte de bash nele como '#!/Bin/Bash '. Depois disso, inicializamos um 'ARQUIVO' variável com o caminho para o próprio arquivo 'arquivo.sh ' eu.e., '/home/linuxhint/arquivo.sh '. Para verificar se o arquivo existe ou não, estaremos usando o 'Se então' Declaração levando suas condições entre colchetes quadrados neste código Bash. Para verificar se o arquivo existe, precisamos usar o '-f' opção seguida pela variável de dupla citação "ARQUIVO" com o personagem do dólar "$". Isso deve verificar se o caminho fornecido para o arquivo contém um arquivo com o nome 'arquivo.sh ' ou não.

A condição termina aqui e o 'então' Parte da declaração começa. Se o arquivo existir, ele exibirá a mensagem de que o arquivo 'arquivo.sh ' existe no caminho dado usando o 'eco' declaração. O 'se' A declaração termina aqui com a sintaxe final 'fi'.

#!/BIN/BASH
Arquivo =/home/linuxhint/arquivo.sh
se [-f "$ file"]; então
eco "$ arquivo existe!"
fi

Agora, salve seu arquivo de código Bash e execute o arquivo usando a linha de comando abaixo:

Arquivo Bash.sh

Aqui está a saída ao executar o comando:

linuxhint@u22: ~ arquivo Bash.sh
/home/linuxhint/arquivo.SH existe!

Se ajustarmos o script e alteramos o 'ARQUIVO' Para um arquivo que não existe e execute o script, não obtemos saída do script.

Exemplo 02

Neste exemplo, adicionaremos uma declaração else à instrução IF no exemplo anterior. Dessa forma, se o arquivo não existir, obteremos uma mensagem de erro apropriada imprimida na saída ou tela padrão. Aqui está o novo código:

#!/BIN/BASH
Arquivo =/home/linuxhint/arquivo.sh
se [-f "$ file"]; então
eco "$ arquivo existe!"
outro
eco "$ arquivo não existe!"
fi

Podemos executar os scripts da seguinte forma:

$ BASH FILE.sh

Temos a mesma saída de antes:

linuxhint@u22: ~ arquivo Bash.sh
/home/linuxhint/arquivo.SH existe!

Mas agora, se invadirmos o nome do arquivo para ser um arquivo que não existir, receberemos uma mensagem de erro adequada:

linuxhint@u22: ~ arquivo Bash.sh
/home/linuxhint/nofile.SH não existe!

Exemplo 03

Digamos, você quer usar o 'não' personagem para que você esteja verificando primeiro se o arquivo não existir. Por exemplo, se o arquivo não existir, você poderá imprimir uma mensagem de erro, mas talvez você nem precise de um else nesse contexto, pois só se importa se o arquivo não existir, caso contrário, o script poderá continuar como normal sem sair de um erro.

Aqui está a sintaxe para usar o '!' personagem para reverter o cheque para verificar Se o arquivo não existir:

#!/BIN/BASH
Arquivo =/home/linuxhint/nofile.sh
se [ ! -f "$ arquivo"]; então
eco "$ arquivo não existe!"
outro
eco "$ arquivo existe!"
fi

Primeiro executaremos o script com o nome do arquivo quebrado:

$ BASH FILE.sh

A saída quando desencadeia a condição de erro está aqui abaixo:

linuxhint@u22: ~ arquivo Bash.sh
/home/linuxhint/nofile.SH não existe!

Agora podemos consertar o nome do arquivo para ser o arquivo que existe:

#!/BIN/BASH
Arquivo =/home/linuxhint/arquivo.sh
se [ ! -f "$ arquivo"]; então
eco "$ arquivo não existe!"
outro
eco "$ arquivo existe!"
fi

Aqui está a saída com o arquivo que existe:

linuxhint@u22: ~ arquivo Bash.sh
/home/linuxhint/arquivo.SH existe!
linuxhint@u22: ~ $

Exemplo 04

Neste exemplo, mostraremos uma sintaxe rápida do shell sem escrever um script e apresentar os operadores lógicos para imprimir sucesso ou erros. Aqui está o script que você pode executar no terminal:

linuxhint@u22: ~ $ [-f arquivo.SH] && eco "Arquivo existe" || eco "o arquivo não existe"
o arquivo existe
linuxhint@u22: ~ $

No código acima, escrevemos o código diretamente no terminal interativo. Usamos um teste condicional para verificar se o arquivo existir. Ele retornará 0 para o sucesso. Lógicos ou e lógicos e operadores são usados ​​para indicar qual mensagem deve ser impressa, sucesso ou falha.

Exemplo 05

Você também pode utilizar uma abordagem semelhante, como mostrado neste artigo, para verificar a existência de um diretório usando o '-d' opção em sua condição em vez de '-f'. Digamos que temos um diretório 'teste' em nossa pasta doméstico e nós usamos o mesmo script com o '-d' opção para verificar e exibir a mensagem da string de acordo com a saída da condição.

Aqui está o código com a verificação do diretório 'Dir.sh ':

#!/BIN/BASH
Arquivo =/home/linuxhint/teste
se [-d "$ file"]; então
ECHO "Diretório $ File existe!"
outro
eco "o arquivo de diretório $ não existe!"
fi

Para executar o código Execute:

$ BASH DIR.sh
linuxhint@u22: ~ $ Bash Dir.sh
Diretório/Home/Linuxhint/Teste Existe!

E o código de teste e saída negativos:

#!/BIN/BASH
Arquivo =/home/linuxhint/teste
se [ ! -d "$ arquivo"]; então
eco "o arquivo de diretório $ não existe!"
outro
ECHO "Diretório $ File existe!"
fi
linuxhint@u22: ~ $ Bash Dir.sh
diretório/home/linuxhint/teste não existe!

Conclusão

É tudo sobre o uso de scripts de bash para verificar se existem arquivos e diretórios. Além disso, usamos o código direto no console Bash utilizando operações de teste e operadores lógicos.