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

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

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"

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

결론

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

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[Linux] 리눅스 계정 관련 명령어(users, id, whoami, logname, who am i)

[Linux] bash 쉘 스크립트 if elif else 조건문 사용법