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?
-f filename ( test -f filename ) returns true if file exists and is a regular file.
Using Bash Continue with a for Loop Use the continue statement inside a conditional if to control the flow of a for : #!/bin/bash for i in {1.. 10} do if [[ $i == '9' ]] then echo "Number $i!" continue fi echo "$i" done echo "Done!"
Check if Directory Exist The operators -d allows you to test whether a file is a directory or not. [ -d /etc/docker ] && echo "$FILE is a directory." You can also use the double brackets [[ instead of a single one [ .
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.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With