반응형
최근에 다른 code들을 보며 skill up을 하고 있는데 우연찮게
nvidia code를 보다보니 아래와 같은 구문이 있어 글을 남깁니다
makefile을 사용할 경우 변수 선언을 위해 = 를 사용하게 됩니다
이때 변수가 여러번 사용되면서 변경이 된다고 한다면 = 을 사용하면 다른 결과가 나오는데
code를 아래와 같이 작성을 하게 되면 결과가 어떻게 나올까요??
우리가 원한건 A, B가 차례대로 호출이 되어야 할 것 같지만, 실제 결과는
이렇게 B가 두번 호출이 됩니다.
그 이유는 make file안에서는 = 는 최종적으로 실행하는 단계(run을 돌리는)에서 마지막으로 할당된 변수를 가져오게 됩니다.
따라서 위의 구문의 T=A는 실제론 필요없는 구문이 된 것입니다.
이를 막기위해선 :=를 사용하는데요, 이렇게 사용하면 실제 변수를 작성한 시점에서 변수가 할당되는 것처럼 됩니다.
추가적으로 +=는 변수에 추가적인 변수를 더하는 것으로
아래와 같이 출력이 됩니다
'language > shell' 카테고리의 다른 글
[쉘 스크립트] for문 활용하기 (0) | 2021.01.28 |
---|---|
[쉘 스크립트] 문자열 자르기 (0) | 2021.01.26 |
댓글