Bash

[Bash] 함수 활용

인공지능하마 2023. 10. 26. 22:16
반응형

함수를 사용하여 스크립트의 일부를 모듈화하고 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 함수는 특정 작업을 수행하는 코드 블록을 정의하고 호출할 수 있습니다.

예제 1: 간단한 함수 정의와 호출

#!/bin/bash

# 함수 정의
greet() {
    echo "안녕하세요, $1!"
}

# 함수 호출
greet "Alice"
greet "Bob"

greet() 함수는 인사말을 출력하는 함수입니다.
greet "Alice"와 greet "Bob"은 함수를 호출하고 각각 "Alice"와 "Bob"에 대한 인사말을 출력합니다.

예제 2: 함수에서 매개변수와 반환 값 사용

#!/bin/bash

# 함수 정의: 두 숫자의 합 계산
add() {
    local result=$(( $1 + $2 ))
    echo "더한 결과: $result"
}

# 함수 호출
add 5 3

add() 함수는 두 숫자를 인수로 받아 덧셈을 수행하고 결과를 출력합니다.

예제 3: 함수 내에서 변수 범위 관리

#!/bin/bash

# 변수 범위 관리를 위한 함수 정의
scoped_variables() {
    local local_var="로컬 변수"
    global_var="글로벌 변수"
}

# 함수 호출
scoped_variables

# 변수 범위 확인
echo "로컬 변수: $local_var"
echo "글로벌 변수: $global_var"

scoped_variables() 함수 내에서 local_var은 로컬 범위에 있으므로 함수 외부에서 접근할 수 없습니다.
global_var는 함수 내에서 글로벌 범위에 있으므로 함수 외부에서도 접근 가능합니다.

예제 4: 함수를 사용한 모듈화

#!/bin/bash

# 함수 정의: 디렉토리 내의 .txt 파일 목록 출력
list_txt_files() {
    local directory="$1"
    for file in "$directory"/*.txt; do
        echo "파일: $file"
    done
}

# 함수 호출
list_txt_files "/path/to/directory"

list_txt_files() 함수는 디렉토리 경로를 입력으로 받아 그 디렉토리 내의 .txt 파일 목록을 출력합니다.


예제 5: 함수를 사용한 파일 복사

#!/bin/bash

# 함수 정의: 파일 복사
copy_file() {
    local source_file="$1"
    local destination="$2"
    cp "$source_file" "$destination"
    echo "파일 복사 완료: $source_file -> $destination"
}

# 함수 호출
copy_file "source.txt" "destination.txt"

copy_file() 함수는 소스 파일과 대상 경로를 입력으로 받아 파일을 복사하고 작업 완료 메시지를 출력합니다.

반응형