로컬 변수 할당에서 실패한 파이프가 함수에 실패하도록 하려면 어떻게 해야 합니까?

로컬 변수 할당에서 실패한 파이프가 함수에 실패하도록 하려면 어떻게 해야 합니까?

이 코드는:

#!/bin/sh

set -euo pipefail # strict mode

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

fn

파이프라인이 실패해도 멈추지 않습니다 echo hello && false. 그러나 local제거하면 중지됩니다. 배쉬를 사용하세요.

이 변수가 로컬 변수라는 사실이 오류 처리에 중요한 이유는 무엇입니까? 글을 쓸 때 지역 변수 할당이 실패하게 만드는 방법은 무엇입니까?

관련 정보