adsense_in_article_test


[bash: function] 함수의 반환값을 변수에 할당할 때 유의할 점 리눅스 bash script

셸 스크립트에서 함수(function)를 사용하다가 간혹 실수할 때가 있어서 정리해 두기로. 우선 함수에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로

함수에서 뭔가 작업을 한 결과를 변수에 저장하는 경우를 생각해 보자. 함수 test_func에서 도출된 결과값을 변수 test_val에 저장한다면 아래와 같은 모양일 것이다.

# 함수 정의
function test_func()
{
...
}

# 결과값을 변수에 할당
test_val=`test_func`

위와 같이 역따옴표(`)를 이용해서 함수를 호출하고 그 결과를 변수에 할당할 경우, 함수 안에서 해당 결과값은 echo 명령으로 출력하도록 해야 한다. 개인적으로 아무 생각 없이 echo 대신 return을 쓰는 바람에 오동작을 하는 경우가 몇번 발생했다.-_-;

따라서, 위와 같은 경우에는 함수 안에 결과를 할당할 지역(local) 변수를 만들고 마지막에 echo 명령으로 결과값을 출력하는 형태가 되도록 유의하는 것이 좋겠다.

function test_func()
{

  # 함수안에서만 유효한 지역 변수 result
  local result
  ...

  # 결과 출력
  echo $result
}
test_val=`test_func`


예전에 C언어에서 함수를 쓰던 버릇이 아직 남아 있어서 그런듯;;



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

70648
3371
2295322

2019 대표이글루_IT

B-Side