변수 기본값 설정
널 명령어 ( : ) 와 등호 ( = ) 를 사용하여 환경 변수 값이 설정되어 있으면
그 값을 사용하고 설정되지 않은 경우 스크립트에서 정한 기본값을 사용할 수 있다.
#!/bin/sh
# param.sh
cp largefile.tar.gz $[TMPDIR:=/tmp]
cd $TMPDIR
|
$ ./param.sh
Extract files to /var/tmp
|
지역변수 설정
함수 내부에서 변수를 다룰 때 호출한 곳에 영향을 주지 않도록 지역 변수로 정의하고자 하면
local 이라는 지시어를 같이 사용하면 된다.
#!/bin/sh
#local.sh
DIR=/var/tmp
function ls_home() {
local DIR
DIR=/$1
echo "directory : $DIR"
}
|
$ ./local.sh logDir
directory : /logDir
|
변수가 정수값인지 확인
expr 로 정수 연산을 할 수 있지만, expr 은 소숫점에 대응하지 않으므로
정수가 아닌 값을 사칙연산하면 에러가 발생한다.
test 명령어를 사용하여 입력값($1) 이 0과 같은지 -eq 연산자로 확인한다.
test 명령어 에러 출력 결과는 필요없으므로 이를 빈 장치에 리다이렉션 시켜서 버리면 (2>/dev/null)
결과는 아래와 같으며 결과만 $? 에 저장되게 된다.
명령행 인수가 0과 같으면 0
명령행 인수가 0과 같지 않으면 1
명령행 인수가 0과 비교 불가능한 문자열이면 2
따라서 결과 $? 이 2 이면 Non-Integer 이고 아니면 Integer 가 된다.
#!/bin/sh
#check.sh
test "$1" -eq 0 2>/dev/null
if [ $? -lt 2 ]; then
echo "Integer"
else
echo "Non-Integer"
fi
|
$ ./check.sh 1.1
Non-Integer
|
'LINUX > Shell Script' 카테고리의 다른 글
17. sh/Bash 스타트업 파일 (0) | 2020.02.04 |
---|---|
15. stty ( 암호입력 ) (0) | 2020.02.04 |
14. read ( 사용자 키입력 받기 ) (0) | 2020.02.04 |
13. getops ( 옵션처리 ) (0) | 2020.02.04 |
12. 명령문 인식 (0) | 2020.02.04 |