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
Woops, turns out I needed a space between [ and -e. Like this:
if [ -e file.txt ]; then
echo "file exists"
else
echo "file doesn't exist"
fi
the '[' and ']' needs to be 'on--their-own', i.e. surrounded by spaces.
if [ -e file.txt ] *emphasized text*; then
echo "file exists"
else
echo "file doesn't exist"
fi
[ is not a special token in Bash; it's just that the word [ is a builtin command (just like echo). So you need a space after it. And, similarly, you need a space before ]:
if [ -e file.txt ] ; then
That said, I recommend [[ ]] instead — it's safer in a few ways (though it still requires the spaces):
if [[ -e file.txt ]] ; then
if [ -e file.txt ]; then
You need spaces. [ and ] are regular programs.