Unix / Linux - Shell Functions

안녕하세요, 열망하는 프로그래머 여러분! 셸 함수의 세상으로 여러분을 안내할 수 있어 기쁩니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 이 흥미로운 주제를 안내해 드리게 되어 설레습니다. 프로그래밍에 처음이라고 걱정하지 마세요 - 기본에서 시작하여 차례대로 올라갑니다. 시작해 보겠습니다!

Unix / Linux - Shell Functions

셸 함수는 무엇인가요?

함수를 만들기 전에, 먼저 그것이 무엇인지 이해해 보겠습니다. 함수는 스크립트 속 작은 도우미라고 생각해 보세요. 주 프로그램 내에 특정 작업을 수행하는 미니 프로그램입니다. 친구 중에 커피를 잘 만드는 사람이 있다면, 스크립트에서 특정 작업에 능숙한 함수를 만들 수 있습니다.

함수 만들기

함수를 만드는 것은 컴퓨터에게 새로운 기술을 가르치는 것과 같습니다. 다음은 기본 구조입니다:

function_name() {
commands
}

간단한 인사 함수를 만들어 보겠습니다:

say_hello() {
echo "Hello, wonderful world!"
}

이 함수를 사용하려면 이름으로 호출합니다:

say_hello

실행하면 다음과 같은 결과를 보게 됩니다:

Hello, wonderful world!

이게 멋있습니다! 우리는 컴퓨터를 인사하게 가르쳤습니다!

함수에 매개변수 전달하기

이제 함수를 좀 더 지능적으로 만들어 보겠습니다. 정보를 함수에 전달할 수 있습니다. 친구에게 커피를 어떻게 좋아하는지 말하는 것과 같습니다.

say_hello 함수를 수정하여 특정 사람을 인사하게 만들어 보겠습니다:

say_hello() {
echo "Hello, $1! How are you today?"
}

여기서 $1은 함수에 전달된 첫 번째 매개변수를 나타냅니다. 시도해 보겠습니다:

say_hello Alice

출력 결과:

Hello, Alice! How are you today?

여러 개의 매개변수를 전달할 수도 있습니다:

greet() {
echo "Hello, $1! The weather is $2 today."
}

greet Alice sunny

출력 결과:

Hello, Alice! The weather is sunny today.

함수에서 값 반환하기

셸 스크립팅에서 함수는 전통적인 의미에서 값을 반환하지 않습니다. 대신 결과를 echo하거나 전역 변수를 설정할 수 있습니다. 두 가지 방법을 모두 보겠습니다:

echo를 사용하여:

get_square() {
echo $(($1 * $1))
}

result=$(get_square 5)
echo "The square of 5 is $result"

출력 결과:

The square of 5 is 25

전역 변수를 사용하여:

get_square() {
square=$(($1 * $1))
}

get_square 6
echo "The square of 6 is $square"

출력 결과:

The square of 6 is 36

함수 내 함수

이야기 속에 이야기가 있는 것처럼, 함수 내에 함수를 가질 수 있습니다. 이를 중첩이라고 합니다. 예제를 보겠습니다:

outer_function() {
echo "This is the outer function"

inner_function() {
echo "This is the inner function"
}

inner_function
}

outer_function

출력 결과:

This is the outer function
This is the inner function

프롬프트에서 함수 호출하기

프롬프트에서 함수를 정의하고 호출할 수도 있습니다. 이는 커스텀 명령을 만드는 데 특히 유용합니다. 다음과 같이 합니다:

  1. 터미널을 엽니다.
  2. 함수를 정의합니다:
greet() { echo "Hello, $1!"; }
  1. 이제 사용할 수 있습니다:
greet World

출력 결과:

Hello, World!

기억하세요, 이 함수는 현재 터미널 세션 동안만 유효합니다. 영구적으로 사용하고 싶다면, 셸 설정 파일(예: .bashrc 또는 .zshrc)에 추가해야 합니다.

일반 셸 함수 방법

다음은 셸 함수에서 일반적으로 사용되는 몇 가지 방법입니다:

방법 설명 예제
function_name() 함수 정의 greet() { echo "Hello!"; }
$1, $2, ... 함수 매개변수 접근 echo "Hello, $1!"
$# 매개변수 수 반환 echo "Number of parameters: $#"
$@ 모든 매개변수를 별도의 단어로 반환 for param in "$@"; do echo $param; done
$* 모든 매개변수를 단일 단어로 반환 echo "All parameters: $*"
local 지역 변수 선언 local name="Alice"
return 함수에서 종료 return 0

기억하세요, 연습이 완벽을 만듭니다! 이 함수들을 실험하고 자신만의 것을 만들어 보세요. 깨달을 때까지 - 모든 전문가는 초보자였습니다. 행복하게 스크립팅하세요!

Credits: Image by storyset