检查文件是否存在并继续,否则在 Bash 中退出

发布于 2025-01-02 03:33:26 字数 357 浏览 0 评论 0原文

我有一个脚本,它是发送电子邮件的其他脚本链中的一个。

在脚本开始时,我想检查文件是否存在,并仅在存在时继续,否则退出。

这是我的脚本的开头:

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

但是我不断收到一条消息:

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

有任何指示吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

耀眼的星火 2025-01-09 03:33:26

将其更改为:

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

条件不是循环,并且没有您需要跳转到的地方。无论如何,执行只是在条件之后继续。

(我还删除了不必要的 &&。并不是说它应该发生,但万一 echo 失败,没有理由不退出。)

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.)

能否归途做我良人 2025-01-09 03:33:26

您的问题在于 continue 行,该行通常用于跳到 forwhile 循环的下一个迭代。

因此,只需删除脚本的 else 部分就可以让它工作。

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.

暮倦 2025-01-09 03:33:26

是的。删除否则继续。这是完全没有必要的。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文