如何使局部变量赋值中的失败管道使函数失败?

如何使局部变量赋值中的失败管道使函数失败?

这段代码:

#!/bin/sh

set -euo pipefail # strict mode

fn() {
        local out=$(echo hello && false)
        echo "out=$out"
}

fn

当管道出现故障时不会停止echo hello && false。但当local被移除时 - 它确实停止了。使用bash。

为什么这个变量是局部变量这一事实对于错误处理很重要?如何使其在编写时因局部变量赋值而失败?

相关内容