![로컬 변수 할당에서 실패한 파이프가 함수에 실패하도록 하려면 어떻게 해야 합니까?](https://linux55.com/image/214214/%EB%A1%9C%EC%BB%AC%20%EB%B3%80%EC%88%98%20%ED%95%A0%EB%8B%B9%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%8C%A8%ED%95%9C%20%ED%8C%8C%EC%9D%B4%ED%94%84%EA%B0%80%20%ED%95%A8%EC%88%98%EC%97%90%20%EC%8B%A4%ED%8C%A8%ED%95%98%EB%8F%84%EB%A1%9D%20%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
이 코드는:
#!/bin/sh
set -euo pipefail # strict mode
fn() {
local out=$(echo hello && false)
echo "out=$out"
}
fn
파이프라인이 실패해도 멈추지 않습니다 echo hello && false
. 그러나 local
제거하면 중지됩니다. 배쉬를 사용하세요.
이 변수가 로컬 변수라는 사실이 오류 처리에 중요한 이유는 무엇입니까? 글을 쓸 때 지역 변수 할당이 실패하게 만드는 방법은 무엇입니까?