Linux/Shell Script

[Shell Script] Functions - 2

비번변경 2022. 7. 3. 22:12

Functions

2022.07.02 - [Shell Script] Functions - 1에 이어서 마저 작성한다.

 

 

 

함수 정의 방법

함수를 nesting 해서 작성

함수 안에 함수를 작성할 수 있다. shell에서 함수는 모두 전역 함수가 되지만, nesting 함수는 외부 함수가 실행되기 전에는 정의된 상태가 아니기 때문에 실행하기 위해서는 외부 함수가 먼저 실행되어야 한다.

 

 

함수에서 연산 결과를 리턴하는 방법

프로그래밍 언어와 다르게 shell에서 return문은 연산 결과를 반환하는 데 사용하지 않고, exit과 같이 함수 종료 상태를 지정하는 용도로 사용된다.

shell에서 함수는 일반 명령과 동일하게 사용되므로, 실행 결과도 외부 명령을 사용한 것처럼 받는다.

함수 결과 리턴

 

함수에 인수를 전달하기

외부 명령 실행 시 인수 전달을 위해 괄호를 사용하지 않는 것처럼, 함수에 인수를 전달할 때에도 괄호를 사용하지 않는다. 전달된 인수는 $1, $2, $3…… 에 자동으로 할당된다.

함수에 인수 전달

스크립트 파일 실행 시 $0은 파일이름에 해당하지만, 함수의 경우 bash가 된다.

💡 $@, $*는 함수에 전달된 인자 전부를 포함한다.
변수에 quote하지 않으면 두 변수에 차이는 없지만 quote 하면 아래와 같이 차이가 발생한다.
- "$@" :  "$1" "$2" "$3"……
- "$*" : "$1c$2c$3 ... "

 

 

$FUNCNAME 변수

함수 내에서 자신의 이름은 $FUNCNAME 변수로 알 수 있다.

$FUNCNAME

 

 

참고 문서

https://mug896.github.io/bash-shell/functions.html

 

 

728x90