exit命令在bash中不起作用

use*_*575 1 linux bash sh

如果找不到特定文件,我希望我的脚本结束.因此我写了以下内容:

[ -f "$DAEMON" ] || (echo "File $DAEMON not found" && exit 0)
Run Code Online (Sandbox Code Playgroud)

但它不能正常工作.如果该文件不存在,我的脚本将输出此错误消息并继续工作.

我试过了

[ -f "$DAEMON" ] || { echo "File $DAEMON not found" && exit 0 }
Run Code Online (Sandbox Code Playgroud)

(因为这里建议退出在bash中不起作用),但是我得到语法错误(意外的文件结束).

[ -f "$DAEMON" ] || exit 0效果很好,但[ -f "$DAEMON" ] || (exit 0) 没有.

如何输出错误消息并停止执行脚本?

Jos*_*lly 6

你的复合命令({ ... }构造)在结束括号之前需要分号 - 它不是可选的!所以这将有效:

[ -f "$DAEMON" ] || { echo "File $DAEMON not found" && exit 0; }
Run Code Online (Sandbox Code Playgroud)