2012-02-05 67 views
16

我有一个脚本,是发送电子邮件的其他人链中的一个脚本。BASH,检查文件是否存在,然后继续退出

在脚本开始时,我想检查一个文件是否存在,并且只在存在时才继续,否则就退出。

这里是我的脚本的开头:

{ 
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 

任何指针?

+2

为什么你在这里需要'继续'? – 2012-02-05 01:25:44

回答

24

它改成这样:

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

有条件的不是一个循环,而且也没有地方,你需要跳转到。无论如何,有条件地继续执行。

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

+0

感谢您在解释后更有意义:) – user1190083 2012-02-08 12:52:15

+1

+1不会继续,并且在失败失败时继续失败。 – 2014-02-27 22:22:03

1

是。丢掉else continue。这完全不需要。

1

您的问题是与continue行通常用于跳转到forwhile循环的下一个迭代。

因此,只要删除脚本的else部分就可以使其工作。

相关问题