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?
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.)
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.
Yes. Drop the else continue
. It's entirely unneeded.
来源:https://stackoverflow.com/questions/9146136/check-if-file-exists-and-continue-else-exit-in-bash