Você pode usar este script simples:
#!/bin/bash
if [[ -f ]]; then
echo "Yes"
exit 0
else
exit 1
fi
Salve como file-exists.sh
. Em seguida, no Terminal, digite chmod +x file-exists.sh
.
Use como: ./file-exists.sh FILE
, onde você substitui FILE
pelo arquivo que deseja verificar, por exemplo:
./file-exists.sh file.txt
Se file.txt
existir, Yes
será impresso no Terminal e o programa sairá com o status 0 (sucesso). Se o arquivo não existir, nada será impresso e o programa sairá com o status 1 (falha).
Se você está curioso para saber por que incluí o comando exit
, continue a ler ...
O que há com o comando exit
?
exit
causa a finalização normal do processo. O que isto significa é, basicamente: ele pára o script. Ele aceita um parâmetro opcional (numérico) que será o status de saída do script que o chamou.
Esse status de saída permite que seus outros scripts usem seu script file-exists
e sua maneira de saber se o arquivo existe ou não.
Um exemplo simples que coloca isso em uso é esse script (salve-o como file-exists-cli.sh
):
#!/bin/bash
echo "Enter a filename and I will tell you if it exists or not: "
read FILE
# Run 'file-exists.sh' but discard any output because we don't need it in this example
./file-exists.sh $FILE &>> /dev/null
# #? is a special variable that holds the exit status of the previous command
if [[ $? == 0 ]]; then
echo "$FILE exists"
else
echo "$FILE does not exist"
fi
Execute o usual chmod +x file-exists-cli.sh
e, em seguida, execute-o: ./file-exists-cli.sh
. Você verá algo assim:
O arquivo existe ( exit 0
):
➜ ~ ./file-exists-cli.sh
Enter a filename and I will tell you if it exists or not:
booleans.py
booleans.py exists
O arquivo não existe ( exit 1
):
➜ ~ ./file-exists-cli.sh
Enter a filename and I will tell you if it exists or not:
asdf
asdf does not exist