티스토리 뷰
업무중에 쉘스크립트에서 버전값을 체크할 일이 생겼다.
예를들어 버전값이 5.2.3~5.2.15 에 해당하는지 확인하는 내용이다. 즉 버전 범위 검사다.
구글링해보니 여러가지 방법들이 나온다.
아래는 그 중에 적당해보이는 3가지로 테스트 해본 스크립트이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/bin/sh VERSION="5.2.13" #default if [ ! -z "$1" ]; then VERSION=$1 fi echo "version is $VERSION" echo "" # 1) egrep 명령을 이용한 방법 (egrep 은 grep -E 와 동일함) echo $VERSION | egrep -q "^[5].[2].([3-9]|1[0-5])$" if [ $? == 0 ]; then echo "[1] matched. 5.2.3~5.2.15" fi # 2) cut 명령을 이용한 방법 major=$(echo $VERSION | cut -d. -f1) minor=$(echo $VERSION | cut -d. -f2) patch=$(echo $VERSION | cut -d. -f3) if [ $major == 5 ] && [ $minor == 2 ]; then if [ $patch -ge 3 ] && [ $patch -le 15 ]; then echo "[2] matched. 5.2.3~5.2.15" fi fi # 3) IFS(internal field separator) 를 이용한 방법 IFS=. TMP=($VERSION) major=${TMP[0]} minor=${TMP[1]} patch=${TMP[2]} if [ $major == 5 ] && [ $minor == 2 ]; then if [ $patch -ge 3 ] && [ $patch -le 15 ]; then echo "[3] matched. 5.2.3~5.2.15" fi fi | cs |
테스트 결과 3가지 방법 모두 원하는대로 잘 동작했다.
grep 을 이용하는게 가장 깔끔해보인다.
하지만, 각 major, minor, patch 버전을 추출하지는 못하기 때문에 필요에 따라 골라서 사용하면 될 듯 하다.
'개발기타' 카테고리의 다른 글
| 비전공자를 위한 이해할 수 있는 IT 지식 (0) | 2021.09.08 |
|---|---|
| AWS 서울 리전 IP 대역 확인하기 (0) | 2021.05.09 |
| 복잡한 정규식 만들기 (Lookahead, Lookbehind) (0) | 2019.04.10 |
| 세 개의 기둥 (협업을 위한 기본 자세) (0) | 2019.03.19 |
| git reset 명령어 옵션 (0) | 2018.11.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- AWS
- https
- 박소연
- amazon aurora
- 그림으로 공부하는 IT 인프라 구조
- Refactoring
- 조건부 로직
- amazon vpc
- 그림으로 배우는 HTTP & Network
- 마틴파울러
- 리팩토링
- 변경함수
- 일잘러
- 코드스멜
- 지시의 언어
- 매개변수화
- 코드악취
- Debugging
- 디버깅
- Debug It! 실용주의 디버깅
- 질의함수
- 리팩터링이란
- 안심 첫 문장
- HTTP
- Debug
- 위임
- 일 잘하는 사람은 단순하게 말합니다
- aws fargate
- SSL
- 제어플래그
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함