• 구름많음동두천 27.7℃
  • 흐림강릉 29.4℃
  • 구름조금서울 29.1℃
  • 구름조금대전 30.2℃
  • 맑음대구 32.3℃
  • 연무울산 29.4℃
  • 맑음광주 31.6℃
  • 구름조금부산 26.6℃
  • 구름조금고창 32.1℃
  • 맑음제주 29.6℃
  • 흐림강화 26.9℃
  • 구름많음보은 28.2℃
  • 구름조금금산 30.3℃
  • 구름많음강진군 30.8℃
  • 구름조금경주시 32.9℃
  • 구름조금거제 28.1℃
기상청 제공

programming

bash 에서 인자 처리 하기

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

------------------------------------------


출처 : http://forum.falinux.com