3. 쉘 변수(Bash 기준)

박은서's avatar
Apr 09, 2026
3. 쉘 변수(Bash 기준)

1. 쉘 변수(Bash 기준)

1) 변수 기본 선언과 사용

HELLO_WORLD=helloeveryone echo $HELLO_WORLD
  • = 양옆에 공백 절대 금지
  • 변수 사용 시 $변수명
  • 출력: helloeveryone

2) 변수 이름 해석 문제

문제

NUM=1 echo $NUMhello
  • Bash는 NUMhello하나의 변수명으로 인식

해결 방법

echo ${NUM}hello
  • ${}는 변수 경계를 명확히 해주는 역할
  • 문자열 연결 시 거의 필수

3) 명령어 결과를 변수에 저장 ($())

GOOD=$(cat environment) echo $GOOD
  • $()명령 실행 결과를 변수에 저장
  • 과거 방식: `command` (비추천)
💡 실무에서는 거의 $() 사용

4) 변수 타입 (쉘은 타입 없음)

A=10 B="hello"
  • Bash는 모든 변수를 문자열로 처리
  • 숫자 계산 시 별도 문법 필요
    • echo $((A + 5)) # 15

5) 환경 변수 vs 일반 변수

일반 변수

VAR=hello

환경 변수 (export)

export VAR=hello

일반 변수 vs 환경 변수

  • 일반 변수 → 현재 쉘에서만 사용
  • 환경 변수 → 자식 프로세스까지 전달
echo $PATH # 대표적인 환경 변수

6) 변수 치환과 확장 (핵심 개념)

기본값 설정

echo ${VAR:-default}
→ VAR 없으면 default

값 할당

echo ${VAR:=default}

존재 여부 체크

echo ${VAR:+exists}

7) 따옴표에 따른 차이 (매우 중요)

큰따옴표 " "

echo "Hello $VAR"
→ 변수 해석됨

작은따옴표 ' '

echo 'Hello $VAR'
→ 변수 그대로 출력

8) 출력 리다이렉션

출력 리다이렉션(>)

echo hello > file.txt
  • file.txt덮어쓰기
  • 기존 내용 있으면 전부 사라짐

출력 이어쓰기 (>>)

echo world >> file.txt
  • 기존 내용 뒤에 추가됨 (append)

9) 변수 관련 자주 쓰는 패턴

읽기 (입력 받기)

read NAME echo $NAME

readonly 변수

readonly VAR=hello

변수 삭제

unset VAR

10) 배열 (중요, 실무 자주 사용)

arr=(a b c) echo ${arr[0]} # a echo ${arr[@]} # 전체

11) 문자열 처리

길이

echo ${#VAR}

부분 문자열

echo ${VAR:0:3}

치환

echo ${VAR/old/new}

12) 실무 핵심 팁 (중요도 높음)

  • 항상 ${VAR} 형태 쓰는 습관 추천
  • 공백 포함 문자열은 반드시 " " 사용
  • 명령 결과는 $() 사용
  • 환경 변수는 export로 명확히 구분

핵심 요약

  • VAR=value (공백 없음)
  • ${VAR} → 안전한 참조
  • $() → 명령 결과 저장
  • export → 환경 변수
  • > vs >> → 덮어쓰기 vs 이어쓰기
Share article