"return" 내장 함수의 종료 상태를 확인합니다.

"return" 내장 함수의 종료 상태를 확인합니다.

트랩에 대해 읽고 있었지만 내 쉘 스크립트에서는 return만 작동했기 때문에 반환되는 상태나 코드가 무엇인지 알고 싶었습니다.

#!/bin/bash
seeOutput=`return`
echo $seeOutput

새 줄을 반환하고 터미널에서 완료되면 다음과 같이 표시됩니다.

-bash: return: can only `return' from a function or sourced script

나는 이미 그것을 알고 있습니다 :p 단지 "return"의 종료 상태를 알아야 합니다.

답변1

당신이 하고 있는 일은 return말도 안되는 쉘 명령을 호출하는 것입니다. 일반적으로 return후속 값이 없으면 마지막으로 실행된 명령의 종료 상태가 반환됩니다.

From man: 함수를 종료하고 n으로 지정된 반환 값을 반환합니다. n이 생략되면 반환되는 상태는 함수 본문에서 마지막으로 실행된 명령의 상태입니다.

답변2

반환 코드는 $?에 저장됩니다.

false ; echo $?
true ; echo $?

돌아올 것이다

1
0

유닉스 규칙은 0은 OK를 의미합니다. 귀하의 예에서 seeOuput은 나중에 참조되는 명령의 모든 출력을 저장합니다.

출력 및 반환 코드가 잘못되지 않도록 하세요.

답변3

이것이 내가 사용하는 방법입니다:

f()
{
   ls $AAA
   return $?
}

g()
{
   f
   return $?
}

d()
{
   g
   echo $?
}

AAA=
d

_

<contents of dir>
0

_

AAA=sdsasdasd
d

_

ls: sdsasdasd: No such file or directory
2

관련 정보