$(command)로 시작된 서브셸에서 종료 코드를 얻을 수 있습니까? [복사]

$(command)로 시작된 서브셸에서 종료 코드를 얻을 수 있습니까? [복사]

다음과 같이 변수를 설정하고 있습니다.

myvar=$(command --params)

$?이후에 명령의 종료 코드( )를 확인하고 싶습니다 . $?이와 같은 검사는 0변수를 명령 출력으로 성공적으로 설정했기 때문에 항상 반환됩니다.

반환 값을 얻을 수 있습니까 command?

답변1

예, 가능합니다. 멀리 갈 필요도 없습니다.

$ $(exit 3); echo $?
3

$ foo="$(echo bar; exit 3)"; echo $?; echo $foo
3
bar

관련 정보