본문 바로가기
리눅스공부/셸 스크립트 프로그래밍

[프로그래밍] printf , set $ , shift 함수 / 리눅스 셸 스크립트 프로그래밍 printf , set $ , shift 함수

by 으노으뇨 2022. 12. 22.
728x90
반응형
SMALL

printf

C언어의 printf() 함수와 비슷하게 형식을 지정할 수 있다.

스크립트 작성
실행한 모습

소스설명

  • 3행 : 공백이 있으므로, " " 로 묶어주었다.
  • 4행 : %5.2f 는 총 5자리며 소수점 아래 2자리 까지 출력하라는 의미다. \n은 1줄을 넘기는 개행 문자고 \t는 Tab 문자, %s 는 문자열을 출력한다. 주의할 점은 $var2 의 경우 값 중간에 공백이 있으므로, 변수 이름을 " " 로 묶어야 오류가 발생하지 않는다는 것이다.

set 과 $(명령)

리눅스 명령을 결과로 사용하려면 '$(명령)' 형식으로 사용해야한다.

또 결과를 파라미터로 사용하고자 할 때 는 set 명령과 함께 사용한다.

요일이 나오게 작성하고 출력한 모습

소스설명 

  • 2행 : $(date) 는 date 명령을 실행한 결과를 보여준다ㅑ.
  • 3행 : $(date) 의 결과가 $1, $2, $3 ... 등의 파라미터 변수에 저장된다.
  • 4행 : 4번째 파라미터인 요일이 출력된다.

shift

파라미터 변수를 왼쪽으로 한 단계씩 아래로 시프트 (이동) 시킨다.

소스를 작성한 모습
변수를 전부 출력한 모습

소스설명

  • 3행 : 결과를 누적할 str 변수를 초기화한다.
  • 4행 : $1 파라미터가 비어 있지 않은 동안에 반복 실행한다. (처음 $1은 AAA고, 한 번 반복 실행하면 5,6행에 의해 $1이 BBB가 된다.)
  • 5행 : str 변수에 $1을 추가한다.
  • 6행 : 전체 파라미터를 왼쪽으로 시프트 시킨다. 즉 $2 -> $1, $3 -> $2 , $4 -> $3 , ... 형태로 작업이 일어난다.
  • 8행 :  while 문이 끝나면 누적한 str가 출력된다.

 

728x90
반응형
LIST

댓글