bash 쉘 스크립트 변수 사용 시 주의사항(중괄호)
변수명을 중괄호({
,}
)로 묶는 습관 들이기
왜?
변수를 활용할 때, $
를 변수명 앞에 두어서 변수임을 알 수 있다.
이때, 변수명을 중괄호({
,}
)로 묶어도 정상 동작을 하는데,
만약 중괄호로 묶지 않는다면 아래와 같은 비정상 동작이 발생할 수 있다.
1
2
3
4
5
#!bin/bash
var="def"
echo "abc$varghi"
원하는 출력 결과 | abcdefghi |
실제 출력 | abc |
이러한 동작이 발생하는 이유는, 중괄호로 묶지 않았기 때문에 var
라는 변수를 쉘 입장에서는 varghi
라는 변수로 인식하게 되었고, varghi
라는 변수는 선언되어있지 않기 때문에 공백으로 치환되어버린 것이다.
해결 방법은?
1
2
3
4
5
#!bin/bash
var="def"
echo "abc${var}ghi"
이처럼 변수를 중괄호로 묶어주면, 원하는 출력 결과를 얻을 수 있다.
결론
별거 아닌 것 같고 나는 안 그럴 것 같지만 다른 부분에 집중하여 스크립트를 작성하다 보면 이런 사소한 부분에 걸려 한참 시간을 낭비하게 될 수도 있다. 주의하자.