인프런 커뮤니티 질문&답변

우댕님의 프로필 이미지
우댕

작성한 질문수

리눅스 쉘 스크립트

함수의 사용 - 실습

함수 return 값과 출력하는 값 동시에 가져오기

작성

·

353

0

안녕하세요 강사님.

함수 return 값을 받고 싶은 경우 함수를 실행하고 $? 로 받을 수 있고, 함수가 출력하는 값을 받고 싶은 경우 함수를 $()로 실행하고 $?로 받는 것으로 이해했습니다.

그렇다면 함수를 한번만 실행하고 return 값과 출력 값을 모두 받을수 있는 방법이 있을까요? 두개의 값을 모두 얻고 싶으면 함수를 두번 다르게 실행하여 값을 얻는 것밖에 생각나지 질문 드립니다.

답변 1

1

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

안녕하세요 우댕님.

함수의 리턴값을 받는 것은 함수 실행 종료 직후의 $?이고,
함수의 출력값을 받는 것은 함수를 command substitution($( .. ))으로 실행한 후 그 결과를 변수에 저장하면 됩니다.
따라서 아래와 같은 구조로 사용하면 함수의 출력값과 리턴값을 동시에 취할 수 있습니다.

 

#!/bin/bash

function result_test()

{

echo "hello world haha"

return 45

}

output="$(result_test)"

retval="$?"

echo "retval: $retval"

echo "output: $output"

 

우댕님의 프로필 이미지
우댕

작성한 질문수

질문하기