BaeBox

쉘 스크립트 옵션 본문

개발 관련/LInux

쉘 스크립트 옵션

배모씨. 2020. 7. 8. 17:16
반응형

스크립트를 사용할 때 -n, -e, -d 등의 옵션을 사용하고는 한다.

아래 코드처럼 만들면 위처럼 동작하는 코드를 손쉽게 만들 수 있다. 

#!/bin/bash


echo
while [ -n "$1" ] # if first argument str length is not 0
do
  #echo $1
  case "$1" in
    -a) echo "found the -a option";;
    -b) param="$2"
        echo "Found the -b option, with parameter value $param";;
    -c) echo "Founc the -c option";;
    --) shift
        break;;
    *) echo "$1 is not an option";;
  esac
  shift     # shift to next param
done
#
count=1
for param in "$@"
do
  echo "Parameter #$count: $param"
  count=$[ $count + 1 ]
done

 

실행 결과

shift를 이용해 순차적으로 다음 인자로 넘어가며 while loop를 돈다. 


추가. 

#!/bin/bash

set -- $(getopt -q ab:cd "$@")

echo
while [ -n "$1" ] # if first argument str length is not 0
do
  #echo $1
  case "$1" in
    -a) echo "found the -a option";;
    -b) param="$2"
        echo "Found the -b option, with parameter value $param";;
    -c) echo "Founc the -c option";;
    --) shift
        break;;
    *) echo "$1 is not an option";;
  esac
  shift     # shift to next param
done
#
count=1
for param in "$@"
do
  echo "Parameter #$count: $param"
  count=$[ $count + 1 ]
done

set -- $(getopt -q ab:cd "$@")

set 과 getopt를 함께 사용하면 인자를 -abc 이런식으로 함께 사용이 가능해진다.


스크립트 출처 : 리눅스 커맨드라인 쉘 스크립트 바이블(도서)

주석만 내가 달았다. 

반응형

'개발 관련 > LInux' 카테고리의 다른 글

sed (Stream Editor)  (0) 2020.07.08
cron 가라로 돌리기.  (0) 2020.07.08
함수 사용법  (0) 2020.07.03
Sudoers  (0) 2020.01.20
Parted ( 파티션 나누기)  (0) 2020.01.15
Comments