【问题标题】:Check if file exists and continue else exit in Bash检查文件是否存在并继续在 Bash 中退出
【发布时间】:2012-02-27 02:28:21
【问题描述】:

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

在脚本的开始,我想检查一个文件是否存在,如果它存在就继续,否则就退出。

这是我的脚本的开始:

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

任何指针?

【问题讨论】:

标签: bash if-statement continue


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    是的。删除else continue。完全不需要。

    【讨论】:

      【解决方案3】:

      改成这样:

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

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

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

      【讨论】:

      • 谢谢你的解释更有意义:)
      • +1 表示不继续,如果失败则继续失败。
      • 我会添加 >&2 并以非零值退出
      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多