조건문의 형식
조건문은 []로 묶어지며 [ -f /etc/passwd ] 조건식을 주었을 때 [ 와 -f 조건식은 공백을 꼭 띄워 주며, 조건의 끝임을 알리는 ;을 입력하며, 만일 then 문장을 입력할 때는 ; 을 생략해도 >된다
|
if [ 조건 ] then 문장 elif [ 조건 ] then 문장 else 문장 fi |
if command; then 문장 elif command; then 문장 else 문장 fi |
test 명령어 연산자
test 명령어는 뒤에 오는 조건식을 검사하여 참, 거짓 여부를 판단 할 수 있다.
예) test expressions
[ expressions ]
산술 비교 연산자
|
제어문 |
설명 |
|
val1 –eq val2 |
변수 val1과 변수 val2 같은 경우 true |
|
val1 –ne val2 |
변수 val1과 변수 val2 다른 경우 true |
|
val1 –qt val2 |
변수 val1이 변수 val2 보다 큰 경우 true |
|
val1 –lt val2 |
변수 val1이 변수 val2 보다 작은 경우 true |
|
val1 –ge val2 |
변수 val1이 변수 val2 보다 크거나 같은 경우 true |
|
val1 – le val2 |
변수 val1이 변수 val2 보다 작거나 가은 경우 true |
파일 검사 연산자
|
제어문 |
설명 |
|
-a |
파일이 존재한 경우 true |
|
-b |
파일이 존재하고 블록장치 파일인 경우 true |
|
-c |
파일이 존재하고 캐릭터 장치 파일인 경우 true |
|
-d |
파일이 존재하고 디렉토리인 경우 true |
|
-e |
파일이 존재하고 파일이 있는 경우 true |
|
-f |
파일이 존재하고 정규 파일인 경우 true |
|
-g |
파일이 존재하고 SetGID가 설정된 경우 true |
|
-h |
파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우 true |
|
-k |
파일이 존재하고 Sticky bit가 설정된 경우 true |
|
-p |
파일이 존재하고 FIFO인 경우 true |
|
-r |
파일이 존재하고 읽기 가능한 경우 true |
|
-s |
파일이 존재하고 0보다 큰 경우 true |
|
-u |
파일이 존재하고 SetUID가 설정된 경우 true |
|
-w |
파일이 존재하고 쓰기가 가능한 경우 true |
|
-x |
파일이 존재하고 실행 가능한 경우 true |
문자열 비교 연산자
|
제어문 |
설명 |
|
-z string |
문자열의 길이가 0인 경우 true |
|
-n string |
문자열의 길이가 0이 아닌 경우 true |
|
string1 = string2 |
문자열 string1과 string2가 일치하는 경우 |
|
string1 != string2 |
문자열 string1과 string2가 일치하지 않는 경우 |
|
string |
문자열이 NULL이 아닌 경우 |
예제
|
#!/bin/bash # $# 입력 받은 매개 변수의 개수를 의미 if [ $# -lt 1 ]; then echo “$0 <Account>…” exit 0 fi # 명령의 결과를 저장하기 위해 `( back quarter)를 사용했다. # ‘(single quarter)과 혼동 할 수 있으므로 주의 하도록 한다. ret=`grep –w “^$1” /etc/passwd` if test –n “$ret” ; then echo $ret else echo “User not found” fi |

댓글을 달아 주세요