반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: awk] awk에서 필드 구분자를 지정할 때 "escape sequence" 관련 경고 메시지 발생 (0) | 2023.08.23 |
---|---|
[bash: sync] 계속 파일 구성이 변하는 디렉토리에 대한 작업에 대한 문제 (0) | 2023.08.22 |
[bash: wc] 파일 내용이 몇개의 행으로 이루어졌는지 확인하기 (0) | 2023.08.22 |
[bash: iconv] iconv를 이용한 텍스트 인코딩 확인 (0) | 2023.08.22 |
[bash: if] if 조건문에서 띄어쓰기에 유의 (0) | 2023.08.10 |