스크립트가 길어지면 「반복되는 부분을 함수로」 만들어 재사용.
셸 함수는 거의 작은 스크립트처럼 동작.
정의.
function_name() { ...; } 또는 function function_name { ...; }.
greet() { echo "Hello, $1"; }.
호출은 함수명 — greet alice.
인자는 $1·$2·...
(스크립트 인자와 같은 표기).
지역 변수.
기본은 모든 변수가 전역 — 함수 안에서 만든 변수도 밖에서 보임.
local var=value로 함수 안에서만 유효한 변수.
충돌 방지·캡슐화에 중요.
반환값.
함수는 「숫자 종료 코드」(0~255)만 return 가능.
큰 값·문자열은 echo로 출력 + 호출 시 $(...)로 받기.
result=$(my_func arg) 패턴.
활용.
1) 자주 쓰는 명령 묶음.
2) 인자 검증·헬퍼.
3) 메뉴 처리.
4) 에러 처리 표준화.
큰 스크립트는 보통 「초반에 함수 정의 → 마지막에 main 호출」 구조.
한 줄 요약
함수는 name() { ...; } 정의, name args 호출.
인자는 $1·$2, 지역은 local.
return은 종료 코드만, 결과는 echo + $(...).
캡슐화·재사용에 필수.
더 알아볼 것
- 함수 라이브러리 패턴
- getopts와 함수 결합
- exec로 함수 결과 다른 명령에