bash script2023. 8. 22. 19:27

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/604123

셸 스크립트에서 함수(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언어에서 함수를 쓰던 버릇이 아직 남아 있어서 그런듯;;

728x90
Posted by 반달가면