본문 바로가기

Linux Distributions

리눅스 쉘 프로그램에서 전역 변수와 로컬 변수의 차이점과 사용 예시

728x90
반응형

리눅스 쉘 프로그램에서 전역 변수와 로컬 변수의 차이점과 사용 예시

1. 전역 변수 (Global Variables)

  • 전역 변수는 프로그램의 어느 곳에서나 접근할 수 있는 변수입니다. 즉, 스크립트 내의 모든 함수에서 사용 가능합니다.
  • 전역 변수는 스크립트가 실행되는 동안 메모리에 계속 유지되며, 해당 스크립트의 모든 함수에서 값을 공유합니다.
  • 스크립트의 어느 곳에서든 값을 할당하거나 변경할 수 있으므로 주의해야 합니다. 다른 함수에서도 접근 가능하기 때문에 의도치 않은 결과가 발생할 수 있습니다.
  • 전역 변수를 정의할 때에는 global 키워드를 사용하거나 함수 바깥에서 정의합니다.
# 전역 변수 예제
global_var="I am global"   # 함수 바깥에서 전역 변수 정의

function example_function {
    echo "Inside the function: $global_var"  # 전역 변수 사용 가능
}

example_function
echo "Outside the function: $global_var"

2. 로컬 변수 (Local Variables)

  • 로컬 변수는 함수 내에서만 접근 가능한 변수입니다. 함수가 실행되면 해당 변수가 메모리에 할당되며, 함수의 실행이 끝나면 변수가 소멸됩니다. 다른 함수에서는 해당 변수에 접근할 수 없습니다.
  • 로컬 변수는 함수 내에서만 유효하기 때문에, 변수의 충돌이나 값의 누출을 방지할 수 있습니다.
  • 로컬 변수를 정의할 때에는 변수 앞에 local 키워드를 사용합니다.
# 로컬 변수 예제
function example_function {
    local local_var="I am local"  # 함수 내에서 로컬 변수 정의
    echo "Inside the function: $local_var"  # 로컬 변수 사용 가능
}

example_function
echo "Outside the function: $local_var"  # 로컬 변수는 함수 밖에서 사용 불가능

 

위의 예제에서 global_var는 전역 변수로 함수 내부와 외부 모두에서 접근할 수 있습니다. 반면 local_var는 함수 내부에서만 접근 가능한 로컬 변수로 함수 외부에서는 접근할 수 없습니다. 함수 내부에서만 유효하기 때문에 같은 이름의 변수를 다른 함수에서 사용해도 서로에게 영향을 주지 않습니다. 이렇게 전역 변수와 로컬 변수를 적절히 사용하여 변수의 스코프를 관리하고, 변수의 누출이나 충돌을 방지할 수 있습니다.

 

728x90
반응형