Back-End/Linux

[Linux] bash 쉘 스크립트 변수 사용 시 주의사항(중괄호)

Young-Cow 2021. 7. 5. 14:21

bash 쉘 스크립트 변수 사용 시 주의사항(중괄호)

변수명을 중괄호({,})로 묶는 습관 들이기

왜?

변수를 활용할 때, $를 변수명 앞에 두어서 변수임을 알 수 있다.

이때, 변수명을 중괄호({,})로 묶어도 정상 동작을 하는데,

만약 중괄호로 묶지 않는다면 아래와 같은 비정상 동작이 발생할 수 있다.

#!bin/bash

var="def"

echo "abc$varghi"
   
원하는 출력 결과 abcdefghi
실제 출력 abc

이러한 동작이 발생하는 이유는, 중괄호로 묶지 않았기 때문에 var 라는 변수를 쉘 입장에서는 varghi 라는 변수로 인식하게 되었고, varghi 라는 변수는 선언되어있지 않기 때문에 공백으로 치환되어버린 것이다.

해결 방법은?

#!bin/bash

var="def"

echo "abc${var}ghi"

이처럼 변수를 중괄호로 묶어주면, 원하는 출력 결과를 얻을 수 있다.

결론

별거 아닌 것 같고 나는 안 그럴 것 같지만 다른 부분에 집중하여 스크립트를 작성하다 보면 이런 사소한 부분에 걸려 한참 시간을 낭비하게 될 수도 있다. 주의하자.

728x90
반응형