티스토리 뷰

개요

저는 Shell Script를 배포할때 보통 많이 사용 했습니다. 그래서 dev인지 qa인지 prd인지 구분해야 하는 경우가 많았는데요, 그럴 때 parameter를 이용해 데이터를 넘겼습니다.

 

결론부터 말하자면 받을 때 $1을 쓰시면 됩니다.

 

deploy.sh

if [ "$1" == "" ] ; then
    echo "sh deploy.sh dev"
    exit 0
fi

PROFILE="$1"

echo $PROFILE

실행 방법
sh deploy.sh qa

 

결과
qa

 

2개를 받고 싶다면 $1 $2를 쓰면 되겠죠?

넘길때는 sh deploy.sh hello world 이렇게 2개를 넘겨주시면 됩니다.

 

 

FETCH해서 git pull하기

~/springboot-mustache-bbs5 가 git local repository일때 pull하는 스크립트 입니다.

git의 변경 내용으로 docker배포를 변경하기 위한 중간 단계로 쓰일 수 있습니다.

 

UPSTREAM=${1:-'@{u}'} 는 @{u} 를 출력 하기 위해 식을 쓴 것입니다.  그냥 쓰면 {}중괄호 문자열 처리가 까다롭기 때문입니다.

 

공식 메뉴얼 설명

${parameter:-word} If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.

cd ~/springboot-mustache-bbs5
ls
pwd
UPSTREAM=${1:-'@{u}'}
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse "$UPSTREAM")
BASE=$(git merge-base @ "$UPSTREAM")

if [ $LOCAL = $REMOTE ]; then
    echo "Up-to-date"
elif [ $LOCAL = $BASE ]; then
    echo "Need to pull"
    git pull
    echo "git pull을 했습니다."
elif [ $REMOTE = $BASE ]; then
    echo "Need to push"
else
    echo "Diverged"
fi

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함