반응형

Argument받아서 처리하기




bash 스크립트로 argument를 여러 개 받아 해당 수 만큼 for loop을 돌릴 때 쓰는 방법이다.


전체 argument를 반복하고 싶다면 아래처럼 하면 된다.


for i in $@ ; do echo $i ; done 


특정 구간만을 반복시키고 싶다면 indexing을 넣어주어야 한다. 아래 예시는 2번부터 끝까지 반복이다.


for i in ${@:2} ; do echo $i ; done


2번부터 3번 반복하고 싶다면 (즉 2부터 4까지) 아래처럼 더 추가한다.


for i in ${@:2:3} ; do echo $i ; done



argument가 몇 개 인지 알고싶다면 "$#" 를 사용하면 된다.


argument가 0개 일때의 조건문.


if [ $# -eq 0 ] ; then

        echo "Number of argument is 0"

else 

        echo "Number of argument is $#"

fi





Reference -

https://stackoverflow.com/questions/255898/how-to-iterate-over-arguments-in-a-bash-script

https://stackoverflow.com/questions/4423306/how-do-i-find-the-number-of-arguments-passed-to-a-bash-script

반응형

+ Recent posts