Check if file exists and continue else exit in Bash

匿名 (未验证) 提交于 2019-12-03 08:33:39

问题:

I have a script that is one script in a chain of others that sends an email.

At the start of the script I want to check if a file exists and continue only if it exists, otherwise just quit.

Here is the start of my script:

if [ ! -f /scripts/alert ]; then     echo "File not found!" && exit 0 else         continue fi 

However I keep getting a message saying:

line 10: continue: only meaningful in a `for', `while', or `until' loop 

Any pointers?

回答1:

Change it to this:

{ if [ ! -f /scripts/alert ]; then     echo "File not found!"     exit 0 fi } 

A conditional isn't a loop, and there's no place you need to jump to. Execution simply continues after the conditional anyway.

(I also removed the needless &&. Not that it should happen, but just in case the echo fails there's no reason not to exit.)



回答2:

Yes. Drop the else continue. It's entirely unneeded.



回答3:

Your problem is with the continue line which is normally used to skip to the next iteration of a for or while loop.

Therefore just removing the else part of your script should allow it to work.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!