함수 내부 변수와 전역 변수의 차이
- 함수 내부 변수: 함수 내부에서 선언된 변수는 지역 변수로, 함수 내에서만 사용 가능하며 함수 외부에서는 접근할 수 없습니다.
- 전역 변수: 함수 외부에서 선언된 변수는 전역 변수로, 스크립트 전체에서 접근 가능하며 함수 내부에서도 사용할 수 있습니다.
함수 내부 변수와 전역 변수 사용 예시
# 전역 변수 선언
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"