[t:/]$ 지식_

pipe multi command exit status code

2024/06/13

파이프로 연결된 명령어의 탈출 코드는 마지막 명령어의 값으로 나온다.

따라서 $? 변수를 이용하면 버그가 발생한다.

아래와 같은 방법으로 처리할 수 있다.

chatgpt가 알려줌. 예전에 스택오버플로에서 찾다가 말았었는데. 한 방에 알려준다.

거짓말인가 테스트는 역시 필요하다. 스택오버플로와 마찬가지로.


ls | tail | head 

ret=${PIPESTATUS[@]}

if ["$ret" != "0 0 0" ]; then
    echo "not ok"
else
    echo "ok"
fi

또는

ret=("${PIPESTATUS[@]}")

echo ${exit_codes[0]}
echo ${exit_codes[1]}
echo ${exit_codes[2]}








[t:/] is not "technology - root". dawnsea, rss