[shell script] shift : 매개변수가 얼마나 많은지 모를 때 반복

HYEOB KIM·2022년 4월 21일
0

Shell

목록 보기
39/71

매개변수가 얼마나 많은지 모를 때 매개변수를 하나씩 조회하면서 사용하고 싶다면 shift를 이용해 볼 수 있습니다.

스크립트가 shift 명령어를 만나면 커맨드라인 매개변수를 앞으로 차례대로 한 칸씩 당깁니다.

$3 -> $2가 되고,
$2 -> $1가 되며,
기존의 $1의 값은 사라집니다.

이를 응용하면 매개변수의 개수가 얼마나 될지 모를 때 반복해서 참조하기 유용합니다.

$ cat test1
#!/bin/bash
count=1
while [ -n "$1" ]
do
        echo "parameter #$count : $1"
        (( count = count + 1 ))
        shift
done

$ ./test1 A B C D E
parameter #1 : A
parameter #2 : B
parameter #3 : C
parameter #4 : D
parameter #5 : E

코드 리뷰

  • while 문은 shift로 매개변수가 앞으로 하나씩 당겨지다가 아무런 값이 존재하지 않게 되면 종료됩니다.
  • count 변수는 1부터 매개변수의 개수까지 1씩 증가합니다.
  • shift를 통해 매개변수가 하나씩 앞으로 당겨지면서 $1이 되기 때문에 계속해서 $1을 참조하면 됩니다.

shift n

shift에 매개변수를 주면 해당 수만큼 앞으로 당겨집니다.

$ cat test1
#!/bin/bash
shift 2
echo $1
hyeob@hyeob:~/devops/Script$ ./test1 A B C D E
C
profile
Devops Engineer

0개의 댓글