`if [-e file.txt]` not working in bash

前端 未结 4 651
有刺的猬
有刺的猬 2021-01-18 18:46

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
         


        
4条回答
  •  灰色年华
    2021-01-18 19:06

    [ 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
    

提交回复
热议问题