inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 쉘 스크립트 마스터

명령어(printf)

질문있습니다.

248

e99

작성한 질문수 3

0

name=michael; printf -v legend "%s jackson" $name; echo $legend

해당 명령을 입력했을 때, 결과로 michael jackson 출력되는데 %s jackson  $name 이부분이 어떻게 적용되는지 자세히 설명 부탁드립니다.

linux shell-script

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

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

59회차 학습 미작동

0

65

2

BASH_REMATCH 변수가 어디서 나온거죠?

1

912

1

${object%%:*}, ${object#*:}는 어떤 뜻인가요

2

396

1

./euid.sh

2

397

1

touch 'Gone with the wind.mp3' 입력 결과가 다릅니다

1

363

1

스크립트에서 %는 무엇을 의미하나요?

1

519

1

하드 링크, 심볼릭 링크

1

690

2

[..]와 테스트 강의에서

1

388

1

하드 링크, 심볼릭 링크

0

631

1

변수명이 출력되지 않습니다.

1

284

1

변수명 출력이 되지 않습니다.

0

345

1

select in case문 질문

0

230

1

crontab 질문이 있습니다.

1

224

2

(..)_(..) 와 BASH_REMATCH

1

747

1

^[.+] 정규표현식이 RegExr 를 나타내는게 맞나요?

1

386

2

실습자료를 다운받은 다음에 어떻게 해야 하나요?

0

435

3

sudo cp helloworld.sh /usr/bin 명령어 질문

1

603

1

read -p 명령어가 동작하지 않습니다.

2

350

1

wc 명령어에 -L 옵션이 동작하지 않습니다.

1

436

1

book이 변수가 아니라 파일인가요?

1

355

1

sed 관련 질문

1

639

2

파일접근권한 강의

1

143

1

[] 결과

2

210

1

# (주석) 관련 질문 드립니다.

1

163

1