쉘 스크립트 이것 저것..
요즘 바빠서 글을 거의 못쓰고 있는데,
오랜만에 시간이 나서 쉘 스크립트 관련해서 간단한 내용 정리좀 해둘까 한다.
주제를 정하고 쓰는 글이 아니라 의식의 흐름대로 써보겠다.
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
일단 생각나는 건 이정도다.