작성
·
368
0
안녕하세요 강사님.
함수 return 값을 받고 싶은 경우 함수를 실행하고 $?
로 받을 수 있고, 함수가 출력하는 값을 받고 싶은 경우 함수를 $()로 실행하고 $?
로 받는 것으로 이해했습니다.
그렇다면 함수를 한번만 실행하고 return 값과 출력 값을 모두 받을수 있는 방법이 있을까요? 두개의 값을 모두 얻고 싶으면 함수를 두번 다르게 실행하여 값을 얻는 것밖에 생각나지 질문 드립니다.
답변 1
1
안녕하세요 우댕님.
함수의 리턴값을 받는 것은 함수 실행 종료 직후의 $?이고,
함수의 출력값을 받는 것은 함수를 command substitution($( .. ))으로 실행한 후 그 결과를 변수에 저장하면 됩니다.
따라서 아래와 같은 구조로 사용하면 함수의 출력값과 리턴값을 동시에 취할 수 있습니다.
#!/bin/bash
function result_test()
{
echo "hello world haha"
return 45
}
output="$(result_test)"
retval="$?"
echo "retval: $retval"
echo "output: $output"