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 # chmod 755 test.sh # ./test.sh 1 2 3 4 #
|
[목차] |