본문 바로가기
운영체제 OS

[Linux] 쉘스크립트 Shift 명령어

by 까망 하르방 2023. 8. 27.
반응형

[Shell Script] 명령어 Shift

인수로 전달 받은 값을 "N" 만큼 버리는 명령어

("N"은 명시하지 않으면 Default = 1)

 

$# = 인자 개수 (→ 남은 인자 개수)

$* = 전체 인자 (→ 남은 인자)

 

• 매개변수를 하나씩 조회할 때 while문과 함께 사용해볼 수 있다.

    매개변수가 얼마나 많은지 모를 때

    하나씩 조회하는 목적으로 shift를 활용해볼 수 있다.

 

 shift 명령어로 매개변수들이 삭제되므로

    필요한 정보는 미리 백업 해두는 것이 좋다.


 

[예제] Shift

#!/bin/bash


echo "------------------------------------"
echo "전달받은 인자 개수 = $#"
echo "인자 목록 = $*"
echo "------------------------------------"
echo
echo "------------------------------------"
echo "shift 2 실행"
shift 2
echo "------------------------------------"
echo
echo "------------------------------------"
echo "남은 인자 = $#"
echo "인수 목록 = $*"
echo "------------------------------------"

 

$ ./test.sh A B C "str" "number" 5

shift 2 로 전달받은 인자 2개가 없어져서

남은 인자 6 → 4이 되고 인수 목록에서도 변화가 있다.

shift 명령어 예시

 

[예제] while문과 shift

#!/bin/bash

totalCount=1

while [ -n "$1" ]
do
    echo "#$totalCount = $1"
    (( totalCount = totalCount + 1 ))
    shift # 1개씩 삭제
done

 

$ ./test.sh A B C D E

쉘스크립트 shift 명령어 예시

반응형

댓글