강좌 & 팁
bash 에서는 shell 을 실행 할때만 인자를 받아들여 처리 할 수 있다.
shell 내부에서 첫번째 인자는 $1, 두번째 인자는 $2, 세번째 인자는 $3, 네번째 인자는 $4 ... 으로 쉘 스크립트 내부에서 변수로 받아서 처리가 가능하다.
또한 인자의 개수는 $# 을 이용하여 현재 들어온 인자의 개수가 몇개인지 알 수 있다.
다음은 쉘에서 인자 처리에 대한 예를 보여주는 샘플 이다.
----------------------------------------------------------
#!/bin/sh
argc=$#
argv0=$0
argv1=$1
argv2=$2
argv3=$3
argv4=$4
fa_argcv()
{
if [ 0 -eq $argc ]
then
echo "argc:$argc"
echo "argv0:$argv0"
fi
if [ 1 -eq $argc ]
then
echo "argc:$argc"
echo "argv0:$argv0"
echo "argv1:$argv1"
fi
if [ 2 -eq $argc ]
then
echo "argc:$argc"
echo "argv0:$argv0"
echo "argv1:$argv1"
echo "argv2:$argv2"
fi
if [ 3 -eq $argc ]
then
echo "argc:$argc"
echo "argv0:$argv0"
echo "argv1:$argv1"
echo "argv2:$argv2"
echo "argv3:$argv3"
fi
if [ 4 -eq $argc ]
then
echo "argc:$argc"
echo "argv0:$argv0"
echo "argv1:$argv1"
echo "argv2:$argv2"
echo "argv3:$argv3"
echo "argv4:$argv4"
fi
}
fa_argcv
exit 0
----------------------------------------------------------
아래는 실행 예이다.
$ ./sample.sh
argc:0
argv0:./sample.sh
$ ./sample.sh 9
argc:1
argv0:./sample.sh
argv1:9
$ ./sample.sh 9 8
argc:2
argv0:./sample.sh
argv1:9
argv2:8
$ ./sample.sh 9 8 7
argc:3
argv0:./sample.sh
argv1:9
argv2:8
argv3:7
$ ./sample.sh 9 8 7 6
argc:4
argv0:./sample.sh
argv1:9
argv2:8
argv3:7
argv4:6
$ ./sample.sh 9 8 7 6 5
------------------------------------------
이상으로 shell 에서 인자 처리에 대하여 알아 보았다.