• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

질문있습니다.

20.12.20 23:46 작성 조회수 133

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 님 ! 어느정도 궁금증이 해결되셨을까요?

그럼 마지막 영상까지 즐감하세요:)