Eu reformatei o seu script para recuar as instruções if
. Isso deixará mais claro que seu último echo
ocorrerá somente se -f
for true e -d
for falso. Se o usuário inserir um arquivo ou diretório que não existe, então -f
falhará.
Considere esta revisão para sua última seção:
if [ -e "$filename" ]; then
if [ -f "$filename" ]; then
echo "You entered a file."
elif [ -d "$filename" ]; then
echo "You entered a directory."
fi
else
echo "You did not enter a valid file or directory."
fi
Onde a seção verdadeira da primeira instrução if
é finalizada antes (por else
); então os arquivos / diretórios que não existem têm uma seção de código para executar.