[함수]함수 내부 변수와 전역 변수의 차이

함수 내부 변수와 전역 변수의 차이

  • 함수 내부 변수: 함수 내부에서 선언된 변수는 지역 변수로, 함수 내에서만 사용 가능하며 함수 외부에서는 접근할 수 없습니다.
  • 전역 변수: 함수 외부에서 선언된 변수는 전역 변수로, 스크립트 전체에서 접근 가능하며 함수 내부에서도 사용할 수 있습니다.

함수 내부 변수와 전역 변수 사용 예시

# 전역 변수 선언
global_var="Global"

# 함수 정의
my_function() {
    # 함수 내부 변수 선언
    local local_var="Local"
    
    echo "Inside function: $local_var"
    echo "Inside function: $global_var"
}

# 함수 호출
my_function

echo "Outside function: $local_var"  # 오류 발생: 함수 내부 변수는 외부에서 접근 불가
echo "Outside function: $global_var"  # 전역 변수는 외부에서도 접근 가능

다른 함수와 함께 사용하는 코드

함수 간 변수 공유하기

함수 간에 전역 변수를 공유하여 값을 전달하거나 변경할 수 있습니다.

global_var="Initial"

update_variable() {
    global_var="Updated"
}

print_variable() {
    echo "Variable value: $global_var"
}

update_variable
print_variable

조건문과 반복문과 함께 사용하는 샘플 코드

함수 내부에서 조건문과 반복문 사용하기

함수 내에서 조건문과 반복문을 사용하여 특정 조건에 따른 작업을 수행할 수 있습니다.

process_numbers() {
    local n=$1
    if [ $n -gt 0 ]; then
        echo "Positive numbers:"
        for (( i=1; i<=n; i++ )); do
            echo $i
        done
    else
        echo "No positive numbers."
    fi
}

process_numbers 5

성능 향상을 위한 팁

  • 함수 호출 횟수를 최소화하여 성능을 향상시킬 수 있습니다.
  • 변수의 범위를 고려하여 필요한 변수만 전역으로 선언하고, 지역 변수를 사용하는 것이 좋습니다.
  • 불필요한 I/O 작업을 피하고, 적절한 압축 알고리즘을 선택하여 성능을 개선할 수 있습니다.

성능 향상을 위한 팁에 해당하는 샘플 코드

파일 압축

파일 압축을 함수로 구현하여 성능을 향상시킬 수 있습니다.

compress_file() {
    local file=$1
    tar czf "${file}.tar.gz" "$file"
    echo "File compressed: ${file}.tar.gz"
}

compress_file "example.txt"

게시됨

카테고리

,

작성자