변수가 셸 스크립트의 기본.
선언이 매우 단순하고, 따옴표 차이가 동작에 큰 영향을 줍니다.
선언과 사용.
name="alice" — 등호 양옆 공백 없이!
잘못된 name = "alice"는 명령 실행 시도.
echo "$name"로 사용 — $ 붙임.
또는 ${name}으로 명시적.
따옴표 차이.
"$name" — 변수 확장 + 공백 문자 그대로.
'$name' — 그대로 출력(확장 안 됨).
${name}와 같이 중괄호로 변수 경계 명확.
"prefix${name}suffix" 같이 변수 옆에 다른 문자 붙일 때 필수.
기본값과 조건.
${name:-default} — name이 비었으면 default.
${name:=default} — 비었으면 default 할당까지.
${name:?error} — 비었으면 에러.
${name:+alt} — 비지 않았으면 alt.
안전한 스크립트의 기본 패턴.
환경변수.
일반 변수는 그 셸에서만, 환경변수는 자식 프로세스에도 전달.
export name=value 또는 export name(이미 있는 변수 환경변수화).
PATH·HOME·USER 같은 게 환경변수의 예.
한 줄 요약
변수는 name="value" (등호 양옆 공백 없음), 사용은 "$name" 또는 "${name}".
큰따옴표는 확장, 작은따옴표는 그대로.
${name:-default} 패턴이 안전.
export로 환경변수.
더 알아볼 것
- readonly — 상수 변수
- local — 함수 안 지역 변수
- unset으로 변수 제거