내 가 사 용 했 던 Linux 명령 의 if - Bash 의 조건 판단 문

내 가 사 용 했 던 Linux 명령 의 if - Bash 의 조건 판단 문
본문 링크: http://codingstandards.iteye.com/blog/780156   (전재 출처 를 밝 혀 주세요)
용도 설명
Shell 의 조건 판단 문 구 는 다른 프로 그래 밍 언어 와 유사 합 니 다.
어떤 조건 판단 방식 이 있 는 지 알 아야 한다 면, man test 를 통 해 도움 을 받 을 수 있다.
상용 형식
서식 1
if 조건;then
    문장
fi
서식 2
if 조건;then
    문장
else
    문장
fi
서식 3
if 조건;then
    문장
elif 조건;then
    문장
fi
격식
if 조건;then
    문장
elif 조건;then
    문장
else
    문장
fi
사용 예시
예시 1
if [ "foo" = "foo" ]; then
    echo expression evaluated as true
fi

 
[root@jfht ~]# if [ "foo" = "foo" ]; then >     echo expression evaluated as true > fi expression evaluated as true [root@jfht ~]#
예시 2
if [ "foo" = "foo" ]; then
    echo expression evaluated as true
else
    echo expression evaluated as false
fi

 
[root@jfht ~]# if [ "foo" = "foo" ]; then >     echo expression evaluated as true > else >     echo expression evaluated as false > fi expression evaluated as true [root@jfht ~]#
예시 3
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
    echo expression evaluated as true
else
    echo expression evaluated as false
fi

 
[root@jfht ~]# T1="foo" [root@jfht ~]# T2="bar" [root@jfht ~]# if [ "$T1" = "$T2" ]; then >     echo expression evaluated as true > else >     echo expression evaluated as false > fi expression evaluated as false [root@jfht ~]#
예시 4 명령 행 매개 변수 수량 판단
파일 if4.sh
#!/bin/sh

if [ "$#" != "1" ]; then
    echo "usage: $0 <file>"
    exit 1
fi

 
[root@smsgw root]# cat if_4.sh #!/bin/sh if [ "$#" != "1" ]; then     echo "usage: $0 "     exit 1 fi [root@smsgw root]# chmod +x if_4.sh [root@smsgw root]# ./if_4.sh usage: ./if_4.sh [root@smsgw root]# ./if_4.sh hello [root@smsgw root]#
 
예제 5 파일 에 어떤 문자열 이 포함 되 어 있 는 지 판단 합 니 다.
if grep -q root /etc/passwd; then
    echo account root exists
else
    echo account root not exist
fi

 
[root@jfht ~]# if grep -q root /etc/passwd; then >     echo account root exists > else >     echo account root not exist > fi account root exists [root@jfht ~]#
 
예시 6 파일 이 존재 하 는 지 판단 하기
if [ -e myfile ]; then
    echo myfile exists
else
    touch myfile
    echo myfile created
fi

 
[root@jfht ~]# if [ -e myfile ]; then >     echo myfile exists > else >     touch myfile >     echo myfile created > fi myfile created [root@jfht ~]# if [ -e myfile ]; then >     echo myfile exists > else >     touch myfile >     echo myfile created > fi myfile exists [root@jfht ~]# ls -l myfile -rw-r--r-- 1 root root 0 10-09 20:44 myfile
 
예 7. 두 파일 이 같 는 지 판단 한다.
echo 1 >file1
echo 2 >file2
if ! diff -q file1 file2; then
    echo file1 file2 diff
else
    echo file1 file2 same
fi 

 
[root@jfht ~]# echo 1 >file1 [root@jfht ~]# echo 2 >file2 [root@jfht ~]# if ! diff -q file1 file2; then >     echo file1 file2 diff > else >     echo file1 file2 same > fi Files file1 and file2 differ file1 file2 diff [root@jfht ~]#
문제 사고
1. 문자열 이 비어 있 지 않 은 것 을 어떻게 판단 합 니까?
2. 파일 이 비어 있 지 않다 는 것 을 어떻게 판단 합 니까?
3. 실행 가능 한 파일 을 어떻게 판단 합 니까?
4. 목록 은 어떻게 판단 하나 요?
5. 수치 크기 판단 은 어떻게 합 니까?
관련 자료
【1】BASH Programming 6.1 Dry Theory
[2] 유 태산 의 블 로그 조건 판단
 
돌아 가기 내 가 사 용 했 던 Linux 명령 시리즈 총 디 렉 터 리
 

좋은 웹페이지 즐겨찾기