Bash 5.2.15 在这里。
运行以下脚本,我希望回显不会运行。
#!/bin/bash
set -e
function func() {
(
exit 1
)
echo 'should not be run because of set -e'
}
func || true
它实际上已经运行了,这对我来说似乎是一个错误。
|| true
如果我在函数调用的站点上删除它,它(正确地)不会运行。
我的解释是“错误吞没”|| true
应用于代码的错误部分:就好像我将其写在与子 shell 的右括号相同的行上(但我没有)。
我错过了什么吗?
这是有记录的[重点是我的]:
这意味着您
func || true
-e
之前被忽略||
,并且在整个函数中被忽略。