I’m trying to check if a file exists using bash. This is my code
if [-e file.txt]; then
echo "file exists"
else
echo "file doesn't exist"
fi
But when I run it I get:
./test.sh: line 3: [-e: command not found
What am I doing wrong?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
[is not a special token in Bash; it’s just that the word[is a builtin command (just likeecho). So you need a space after it. And, similarly, you need a space before]:That said, I recommend
[[ ]]instead — it’s safer in a few ways (though it still requires the spaces):