1
resposta

Dúvida sobre questao "Verificando a existência de arquivos"

Bom dia,

Fiquei na dúvida se o código abaixo também nao atenderia o objetivo da questao, que é listar os arquivos que é checar se os arquivos escolhidos para compactação existem no diretório. A resposta correta indicada para a questão é a letra A. Nao compreendi claramente porque o código da letra D também nao representa uma soluçao.

Letra D)

arquivos=("$@") for arquivo in "${arquivos[@]}"; do if [ -e "$arquivo" ]; then continue else echo "Arquivo não encontrado: $arquivo" exit 1 fi done

Atenciosamente.

1 resposta

Olá, Cleverson.

Tudo bem?

Na opção A, o código verifica a inexistência de um arquivo (if [ ! -e "$arquivo" ]). Se o arquivo não existir, ele imprime a mensagem "Arquivo não encontrado" e encerra o script com exit 1. Isso significa que, no momento em que um arquivo não for encontrado, o script para de executar, indicando um erro.

Por outro lado, na opção D, o código verifica a existência de um arquivo (if [ -e "$arquivo" ]). Se o arquivo existir, ele simplesmente continua para o próximo arquivo com o comando continue. No entanto, se o arquivo não existir, ele imprime a mensagem "Arquivo não encontrado" e encerra o script com exit 1.

A diferença crucial aqui é que, na opção D, o script irá verificar todos os arquivos mesmo depois de encontrar um arquivo inexistente, pois o comando continue permite que o loop continue mesmo após encontrar um arquivo inexistente. Isso pode não ser o comportamento desejado em um script de compactação de arquivos, onde você provavelmente gostaria de parar a execução assim que um arquivo inexistente for encontrado, para evitar a compactação de um conjunto parcial de arquivos.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.