System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제2장 쉘 프로그래밍

    4. 외부 아규먼트($#, $@, $0, $1... 과 shift)


이는 스크립트에서 외부로부터 전달되는 값을 받는 방법을 말하는 것으로, test.sh 라는 스크립트가 있을 경우 외부에서

[root@leelab /root]# ./test.sh 1 2 3 4

라고 실행했을 때, test.sh 라는 스크립트에는 4개의 아규먼트가 전달되는데 $1에는 첫 번째 아규먼트인 '1' 이라는 값이 들어오며, $2에는 두 번째 아규먼트인 '2'가, $4에는 '4'라는 값이 들어오게 됩니다. 그러면 이들 아규먼트의 개수는 알 수 없을까요? 그렇지 않습니다. '$#'라는 변수를 통해서 얻어올 수 있습니다.

echo $#

라고 test.sh 안에서 출력하면 4라는 값이 화면에 출력됩니다.

그러면 이들 아규먼트를 모두 지칭하는 변수는? '$@'라는 변수를 통해서 모두 얻어올 수 있습니다.

마지막으로 shift에 대해 알아봅시다. 이것은 바로 아규먼트를 왼쪽으로 밀어버립니다. 왼쪽으로 아규먼트를 밀면 가장 처음에 있는 아규먼트는 없어지게 됩니다. 즉 shift라는 명령을 수행한 후

echo $1

이라는 명령을 수행했을 경우 '1'이 화면에 찍히는 것이 아니라, '2'라는 값이 화면에 찍히게 됩니다. 더 이상 값이 없을 경우에는 ''(null)이 화면에 출력(?) 됩니다.

# vi test.sh

#!/bin/sh
echo $#
echo $1 $2 $3 $4
shift
echo $1 $2 $3 $4
exit 0

# chmod 755 test.sh

# ./test.sh 1 2 3 4
4
1 2 3 4
2 3 4

#

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.