업무를 하다보면 여러가지 스크립트를 만들 일이 생긴다.
나는 매번 만드는데도 ... 자꾸만 이것저것 찾아보고 만들게 되는데
내가 필요한 부분만 정리해 두면 그러지 않아도 될 것 같아서 가볍게 argument / option 을 처리할 수 있는 script를 만들어 보려고 한다.
우선 bash script 파일 하나를 만들고 실행 권한을 줬다.
vim 210707.sh
chmod 775 210707.sh
shebang 을 bash로 적고 argument를 받는 코드를 아래와 같이 작성해서 출력 해 보았다.
#!/usr/bin/bash
echo $@
# 저장 후 실행
./210707.sh 1 2 3 4 5
1 2 3 4 5
$@ 를 이용해서 실행파일 뒤에 따라오는 argument를 출력해 주는 방법은 알았다.
이제 그 argument를 처리해서 옵션을 받는 스크립트로 만들어 보자
#!/usr/bin/bash
item_index=0
for i in `echo $@`
do
item_index=`expr $item_index + 1`
if [ "$i" == "-v" ]
then
item_index=`expr $item_index + 1`
echo ${!item_index}
fi
done
# 실행
/210707.sh -v 7
7
-v 옵션을 줬을때 옵션 값을 출력하는 스크립트를 만들어 봤고, index 를 증가시키는 방법을 이용한 출력을 이용했다.
뭐.. 이렇게 해서 되는 부분도 있는데 사실 굳이 indexing 을 하지 않아도 아래처럼 처리가 가능하다.
#!/usr/bin/bash
while [ -n "$1" ]
do
arg="$1"
if [ "$arg" == "-v" ]
then
shift
echo $1
fi
shift
done
# 실행
/210707.sh -v 7
7
shift는 argument 하나를 이동시켜주는 명령어로 원하는 option 값을 만나면 argument를 하나 이동해서 원하는 값에 접근이 가능하다.
'CS > Shell scripts' 카테고리의 다른 글
[Bash] 배쉬쉘에서 파일/디렉토리 유무 확인하기 (0) | 2021.10.06 |
---|---|
[bash] 스크립트 에서 signal 캐치하는 방법 (0) | 2021.08.01 |
[Bash] 쉘 스크립트 출력 시 개행이 안되는 경우 해결방법 (0) | 2021.06.24 |
Linux 명령어 'awk' 로 원하는 부분만 출력하기 - 1 (0) | 2021.06.24 |
[csh] c shell 에서 덧셈 구현 방법 (0) | 2021.06.16 |