Shell 스 크 립 트 if 조건문, for 순환, case 문

3982 단어
(1) case 문 구 는 여러 개의 if. else 기능 을 실현 하 는 데 사 용 됩 니 다. case 는 문자열 을 일치 시 킵 니 다. 첫 번 째 모드 에서 시 작 됩 니 다. 한 모드 가 일치 하면 다른 모드 는 더 이상 일치 하지 않 습 니 다.#!/bin/sh echo "please yes or no" read input
  #case语句的基本用法,记住每一个匹配后边都有双分号,代表本模式的结束和下一个#模式的开始,在进行通配符匹配的时候不要加双引号 case "$input" in yes ) echo "yes" ;; y* ) echo "y*" ;; y ) echo "y" ;; no ) echo "no" ;; n ) echo "n" ;; * ) echo "default" ;; esac
  #合并匹配模式,case的匹配只能匹配一条,想要做到匹配多个结果使用如下的方式 case "$input" in y* | Y* ) echo "yes" ;; n* | N* ) echo "no" ;; * ) echo "default" ;; esac
  #一种更屌的匹配 case "$input" in [yY][eE][sS] | [yY] ) echo "yes" ;; [nN] | [nN][oO] ) echo "no" ;; * ) echo "default" echo "end" esac
  exit 0

(2) 셸 프로 그래 밍 에 사용 되 는 순환 문 구 는 for 순환, while 순환, until 순환, for 뒤쪽 과 하나의 변 수 를 포함 하고 그 다음 에 집합 입 니 다. 집합 중의 물건 을 이 변수 에 부여 합 니 다. 순환 할 때마다 while 순환 과 if 는 같은 조건 으로 판단 합 니 다. 충분 한 조건 으로 문 구 를 실행 합 니 다. until 과 while 는 반대로 조건 집행 문 구 를 만족 시 키 지 않 습 니 다.
#!/bin/sh\# for 순환 의 가장 기본 적 인 용법 for var in "hello", "lily", "welcome"doecho - n "$var"done
echo
$(ls *. sh) 의 var 에 대한\# 마스크 확장 doecho "$var"
done
\# while 순환, 뒤쪽 은 if 와 같은 조건 echo "please input secret"read secretwhile ["$secret"! = "lily"] doecho "try again"read secretdone
\# until 순환 은 while 와 반대로 조건 이 가짜 여야 echo "please input text"read textuntil ["$text"= "xiao ta"] doecho "try again"read textdone 을 실행 합 니 다.
exit 0
(3) 조건문 if 의 용법
#!/bin/shecho "please input text 1"read text 1 echo "please input text 2"read text 2\# 판단 문자열 등 또는 같 지 않 음 if test $text 1 = $text2thenecho "text 1 equals text 2"elseecho "text 1 not equals text 2"
fi
\# 문자열 이 비어 있 는 지 판단 합 니 다. 여기 판단 은 $text 1 두 변 에 더 블 따옴표 if [- z "$text 1"] thenecho "text 1 is null"fiif [n "$text 1"] 를 추가 하 는 것 을 기억 합 니 다.thenecho "text1 is not null"
fi
\# 산술 비교 text 1 과 text 2 의 내용 은 숫자 if ["$text 1"- eq "$text 2"] 일 수 있 습 니 다.thenecho "equal"elif [ "$text1"-gt "$text2"];thenecho "great"elif [ "$text1"-le "$text2"];thenecho "little and equals"
fi
echo "input a file or not file"read file\# 파일 인지 디 렉 터 리 if [- d $file] 인지 판단 합 니 다.thenecho "$file is a directory"elif [ -f $file ];thenecho "$file is a file"
fi
\# 파일 의 크기 가 비어 있 는 지 판단 하기 if [- s $file];then\# echo - n 은 줄 바 꿈 자 를 없 애기 위해 echo - n "$file 'size is not null"
fi
\# 파일 의 읽 기와 쓰기 권한 을 판단 하 는 if [- f "$file"];then if [ -r "$file"];then echo "read" fi if [ -w "$file"];then echo "write" fi if [ -x "$file"];then echo "exe" fifi
exit 0
[echo 뒤의 문자열 은 작은 따옴표 로 시작 하 는 것 이 좋 습 니 다. 앞으로 모든 문자열 은 작은 따옴표 로 시작 하 는 것 이 좋 습 니 다. 찾기 어 려 운 bug 를 피 할 수 있 습 니 다.]
서로 다른 따옴표 가 변수 에 대한 역할:
따옴표 "": 변 수 를 해석 할 수 있 습 니 다. $기 호 는 변수 접두사 입 니 다.
작은 따옴표 ': 변 수 를 해석 하지 않 습 니 다. $는 일반 문자 입 니 다.
반 따옴표 `: 명령 이 실 행 된 결 과 를 변수 에 출력 합 니 다.
원본 링크:http://www.jb51.net/article/55030.htm

좋은 웹페이지 즐겨찾기