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.)
Yes. Drop the else continue
. It's entirely unneeded.
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.