작성
·
222
0
name=michael; printf -v legend "%s jackson" $name; echo $legend
해당 명령을 입력했을 때, 결과로 michael jackson 출력되는데 %s jackson $name 이부분이 어떻게 적용되는지 자세히 설명 부탁드립니다.
답변 1
1
seol3865!! 님 강의를 수강하시면서 궁금한 점이 발생되셨군요. 자 그럼 시작해보겠습니다
먼저 간단한 실험(A)을 해보겠습니다
user@linux$ name=michael; printf "%s jackson" $name
michael jacksonuser@linux$
두번째 실험(B)을 해보겠습니다
user@linux$ name=michael; printf -v legend "%s jackson" $name; echo $legend
michael jackson
user@linux$
어떤 차이점이 느껴지실까요?
실험(A)의 경우 문자열이 형식화된 출력(formatted string)으로 화면에 보이게됩니다
실험(B)의 경우 문자열이 화면에 출력되는대신 지정 변수(legend)에 저장됩니다
이 표현법은 아래처럼 C언어 printf 함수의 사용례와 많이 흡사합니다
char* name="michael"; printf("%s jackson", name); <--- %s 는 우측의 문자열(name)로 실제로 치환되어 사용됩니다
화면출력=> michael jackson
마지막 결론입니다 name=michael; printf -v legend "%s jackson" $name; echo $legend
이 문장의 해석법은 name변수에는 마이클이 들어있고, "%s jackson" $name 는 다음처럼 치환되며
"michael jackson" 최종적으로 이 문자열은 legend 변수에 저장되고,
echo $legend 명령에 의해 화면에 출력되죠?
seol3865 님 ! 어느정도 궁금증이 해결되셨을까요?
그럼 마지막 영상까지 즐감하세요:)