셸 프로 그래 밍 의 조건문 -- if 와 case

3352 단어 shell각본
셸 프로 그래 밍 의 조건문 -- if 와 case
파일 테스트
1.1 test 명령
특정한 표현 식 이 성립 되 었 는 지 테스트 하고 반환 값 이 0 이 아 닌 0 이 되 었 습 니 다.
test 조건 식
[조건 식] - 내용 과 괄호 사이 에 빈 칸 추가
파일 테스트
[연산 자 파일 이나 디 렉 터 리]
자주 사용 하 는 테스트 연산 자 ● - d: 디 렉 터 리 (Directory) 인지 테스트 ● - e: 디 렉 터 리 나 파일 이 존재 하 는 지 테스트 (Exist) ● - f: 파일 인지 테스트 (File) ● - r: 현재 사용자 가 읽 을 수 있 는 권한 이 있 는 지 테스트 (Read) ● - w: 현재 사용자 가 기록 할 수 있 는 권한 이 있 는 지 테스트 (Write) ● - x: 현재 사용자 가 실행 할 수 있 는 권한 이 있 는 지 테스트 (Excute)
실례 는 다음 과 같다.
[root@localhost ~]# ls -l shell/
总用量 16
-rw-r--r--. 1 root root 134 11月 25 19:59 demo.sh
-rwxr-xr-x. 1 root root 274 11月 25 18:58 state.sh
-rwxr-xr-x. 1 root root 208 11月 25 19:17 sujiaju.sh
-rwxr-xr-x. 1 root root 345 11月 25 19:11 welcome.sh

[root@localhost ~]#  [ -d shell/ ]          //第一种测试方法,对当前用户有效,或者test -d shell/
[root@localhost ~]# echo $?
0
[root@localhost ~]#  [ -d shell/state.sh ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# test -d shell/           //第二种测试方法,对当前用户有效
[root@localhost ~]# echo $?
0
[root@localhost ~]# test -d shell/welcome.sh 
[root@localhost ~]# echo $?
1

[root@localhost ~]# test -x shell/welcome.sh 
[root@localhost ~]# echo $?
0
[root@localhost ~]# test -x shell/demo.sh 
[root@localhost ~]# echo $?
1

//上述过程可以使用&&一次执行
[root@localhost ~]# test -x shell/welcome.sh && echo "yes"
yes
[root@localhost ~]# echo $?
0
[root@localhost ~]#  [ -d shell/state.sh ]&& echo "yes"
[root@localhost ~]# echo $?
1

test 명령 은 파일 간 의 관 계 를 판단 하 는 데 도 사용 할 수 있 습 니 다.
  • - nt - A 파일 이 B 파일 보다 새 것 인지 판단
  • - ot - A 파일 이 B 파일 보다 오래된 지 판단
  • - ef - 두 파일 이 같은 파일 인지 판단 (inode 가 같은 지)
  • 1.2 정수 비교
    [정수 1 연산 자 정수 2]
    ■ 자주 사용 하 는 테스트 연산 자 ● - eq: (Equal) ● - ne: 같 지 않 음 (Not Equal) ● - gt: (Greater Than) 이상 ● - lt: 작 음 (Lesser Than) ● - le: 작 거나 같 음 (Lesser or Equal) ● - g: 크 거나 같 음 (Greater or Equal)
    실례 참조:
    [root@localhost shell]# [ 5 -gt 3 ]&&echo "yes"
    yes
    [root@localhost shell]# [ 5 -lt 3 ]&&echo "yes"
    [root@localhost shell]# 

    1.3 문자열 비교
    ● 형식 1 [문자열 1 = 문자열 2] [문자열 1! = 문자열 2] ● 형식 2 [- Z 문자열] ■ 자주 사용 하 는 테스트 연산 자 ● =: 문자열 내용 이 같 음 ●! =:문자열 내용 이 다 릅 니 다!호 는 반대의 뜻 을 나타 낸다 ● - Z: 문자열 내용 이 비어 있다
    [root@localhost shell]# [ hello = hello ]&&echo "yes"
    yes
    [root@localhost shell]# [ hello = hell ]&&echo "yes"
    [root@localhost shell]# [ hello != hell ]&&echo "yes"
    yes
    [root@localhost shell]# [ -z ]&&echo "yes"
    yes
    [root@localhost shell]# [ -z hello ]&&echo "yes"
    [root@localhost shell]# 
    

    1.4 논리 테스트
    형식 1: [표현 식 1] 연산 자 [표현 식 2] 형식 2: 명령 1 연산 자 명령 2... 자주 사용 하 는 테스트 연산 자 ● - a 또는 &: 논리 와 '그리고' 의 뜻 ● - o 또는 |: 논리 또는 '또는' 의 뜻 ●!:논리 적 여부
    인 스 턴 스 는 위의 문자열 테스트 인 스 턴 스 를 참조 하면 됩 니 다.
    5. if 문장의 구조
    5.1 단일 분기 구조:
    if 조건 테스트 조작
    then 명령 시퀀스
    fi
    5.2 이중 분기 구조
    if 조건 테스트 조작
    then 명령 시퀀스 1
    else 명령 시퀀스 2
    fi
    5.3 다 분기 구조
    if 조건 테스트 조작 1
    then 명령 시퀀스 1
    elif 조건 테스트 조작 2
    then 명령 시퀀스 2
    else
    命令序列3

    fi
    6. case 구문 구조
    구조 형식:
    case 变量值 in
    
    模式1)
    
        命令序列1
    
        ;;
    
    模式2)
    
        命令序列2
    
        ;;
    
    *)
    
        默认命令序列
    
    esac

    요약: if 조건 판단 은 일반적으로 구간 판단 에 사용 되 며, 케이스 는 일반적으로 고정 값 이나 문자열 판단 에 사용 된다.

    좋은 웹페이지 즐겨찾기