Linux/Shell Script

쉘 스크립트 이것 저것..

제이Lee 2023. 12. 19. 18:11

요즘 바빠서 글을 거의 못쓰고 있는데,

오랜만에 시간이 나서 쉘 스크립트 관련해서 간단한 내용 정리좀 해둘까 한다.

주제를 정하고 쓰는 글이 아니라 의식의 흐름대로 써보겠다.


1. $* 와 $@ 의 차이.

$* 파라미터 전체를 하나의 문장으로 보겠다. 예를 들면, ./test 111 222를 실행할 경우 '111 222' 라는 하나의 파라미터만 받는다.
$@ 파라미터를 띄어쓰기로 구분해서 받겠다. 예를 들면, ./test 111 222를 실행할 경우 '111', '222' 라는 두개의 파라미터를 받는다.

 

2. getopts 사용법.

while getopts "i:p:H:hn:m:Ss:" opt    // i:p:H: 처럼 : 가 뒤에 붙어 있으면 -i 'option' 처럼 필수로 option 값을 넣어줘야 하고
    do                                                 // :hn 에 h처럼 뒤에 : 가 없으면 -h 처럼 단일 커맨드만 입력하면 된다.
        case $opt in                              // 예를들면, ./test -h -i 옵션값 -S -s 옵션값
             i) PROXY_IP=$OPTARG;;
            p) PROXY_PORT=$OPTARG;;
            H) HOST_NAME=$OPTARG;;
            h) usage;;
            n) ;;
            m) ;;
            S) ;;
            s) IS_SCP=$OPTARG;;
            *) usage;;
        esac
    done

 

3. 맨 끝에 한 글자 자르기

끝 글자를 자르는 방법이야 많겠지만, 나는 이렇게 한다.

charend=${#EXTRA_CMD}  // # 을 넣어서 EXTRA_CMD 라는 변수의 문자열 길이를 구한다.
    if [ $charend -gt 1 ]
    then
        EXTRA_CMD="${EXTRA_CMD:0:$charend-1}"   // EXTRA_CMD라는 문자열의 0~위에서 구한 문자열 길이 -1

                                                                                       // 만큼 문자열을 자른다. 결과적으로 제일 끝 문자 제거.
    fi

 


일단 생각나는 건 이정도다.