셸 학습 if 문장

4276 단어
bash 에서 조건 판단 을 어떻게 실현 합 니까?조건 부 테스트 유형:    정수 테스트    문자 테스트    파일 테스트
1. 조건 부 테스트 표현 식:    [ expression ]  괄호 양 끝 에 빈 칸 이 있어 야 합 니 다.    [[ expression ]] 괄호 양 끝 에 빈 칸 이 있어 야 합 니 다.    test expression    조합 테스트 조건:     -a: and     -o: or      !: ... 이 아니다
2. 정수 비교:    -eq 두 정수 가 같 는 지 시험 하 다.    -ne 두 정수 가 같 지 않 은 지 시험 하 다.    -gt 하나의 수가 다른 수 보다 큰 지 시험 하 다.    -lt 하나의 수가 다른 수 보다 작 는 지 시험 하 다.    -ge 보다 크 거나 같다    -le 명령 간 의 논리 적 관계 보다 작 거나 같 음    논리 와: & &        첫 번 째 조건 은 가짜 입 니 다. 두 번 째 조건 은 판단 할 필요 가 없다. 가장 전체적인 결 과 는 이미 있다.        첫 번 째 조건 은 진실 이 고, 두 번 째 조건 은 반드시 판단 해 야 한다.    논리 또는: | 3. 문자열 비교    문자열 비교:       ==   ... 과 같다  양쪽 에 빈 칸 이 있어 야 한다.       !=    기다 리 지 않다        >    ... 보다 크다       파일 테스트
     -z string 지정 한 문자 가 비어 있 는 지, 비어 있 는 지, 비어 있 는 것 이 아 닌 지 시험 합 니 다.     -n string 지정 한 문자열 이 비어 있 지 않 은 지, 비어 있 는 지 시험 합 니 다. 헛 된 것 이 아니 라 진짜 이다.    -e FILE 파일 존재 여부 테스트    -f file 파일 이 일반 파일 인지 테스트 합 니 다.    -d file 지정 한 경로 가 디 렉 터 리 인지 테스트 합 니 다.    -r file 현재 사용자 에 게 파일 을 읽 을 수 있 는 지 테스트 합 니 다.    -w file 현재 사용자 에 게 파일 을 쓸 수 있 는 지 테스트 합 니 다.    -x file 테스트 파일 은 현재 사용자 에 게 모두 실행 가능 합 니 다.    -z  비어 있 는 지 여부  비 워 두 면 진짜 다.    -a  비 어 있 지 않 은 지 여부
if 문법
if 판단 조건 진짜 다른 건 다 가짜 야.
단일 분기 if 구문 if 판단 조건; thenstatement 1statement 2..... fi
두 갈래 의 if 문장: if 판단 조건; thenstatement 1statement 2... elsestatement 3statement4fi
Note: if 문 구 는 비어 있 는 지 여 부 를 판단 합 니 다 [ "$name” = "" ]같다 ! "$name" ][ -z "$name" ]    
참고: if 문 구 를 사용 할 때 수치 류 를 진행 하 는 경우 판단 합 니 다. ,사용 을 권장 하 다 let ((()) 판단 문자열 등에 test [ ] or [[ ]] 판단 (() 에서 변 수 는 $를 사용 하지 않 고 참조 할 수 있 습 니 다.
example: 숫자 범 위 를 설명 할 때 if 를 사용 할 수 있 습 니 다. 카 이 프 를 사용 할 수 있 습 니 다. [ $x -gt 90 -o $x -lt 100 ]case $x in100)9[0-9])
 
if [ "X$name" != "x" ]이 문 구 는 $name 이 비어 있 으 면 X = X 가 다음 결 과 를 실행 합 니 다.
스 크 립 트 를 쓸 때 리 턴 명령 을 사용 해 야 할 때 가 많 습 니 다. $? 이전 명령 이 실 행 될 경우 리 턴 값 은 0 입 니 다. 그렇지 않 으 면 1 ~ 255 사이 의 모든 것 입 니 다.    진짜    가짜
조건 부 테스트 작성 방법:
1、  명령 을 실행 한 결과                   if grep -q "rm" fs.sh;then
2. 명령 실행 결과 의 반대 값 을 되 돌려 줍 니 다.                   if !grep -q "rm" fs.sh;then
 
3. 복합 명령 사용 (산식)                   if ((a>b));then
 4, bash 키워드 사용 [[판단 식]                   if [[ str > xyz ]];then
 5. 내 장 된 명령 사용: test 판단 식                   if test "str" \> "xyz";then
 6. 내 장 된 명령 사용: [판단 식]  유사 test                  if [ "str" \> "xyz" ];then
7 、 사용 - a -논리 적 조합                  [ -r filename -a -x filename ]
8. 명령 & & 명령                  if grep -q "rm" fn.sh && [ $a -lt 100 ];then
 
9. 명령 | | | 명령                 if grep -q "rm" fn.sh || [ $a -lt 100 ];다음 예제 스 크 립 트 (
스 크 립 트 를 써 서 테스트 성적 을 입력 하고 아래 의 기준 에 따라 그의 평 점 을 출력 합 니 다.
성적 (A - F).
A: 90–100
B: 80–89
C: 70–79
D: 60–69
F: <60
)            
 
#/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This pragram is calculation your grade
#import an argument
read -p "Please input your grade:" x
declare -i x
#jugemet $x value is none or not
if [ "$x" == "" ];then
echo "You don't input your grade...."
exit 5
fi
#jugement the gread level
if [[ "$x" -ge "90" && "$x" -le "100" ]];then
echo "Congratulation,Your grade is A."
elif [[ "$x" -ge "80" && "$x" -le "89" ]];then
echo "Good,Your grade is B."
elif [[ "$x" -ge "70" && "$x" -le "79" ]];then
echo "Ok.Your grade is C."
elif [[ "$x" -ge "60" && "$x" -le "69" ]];then
echo "Yeah,Your grade is D."
elif [[ "$x" -lt "60" ]];then
echo "Right,Your grade is F."
else
echo "Unknow argument...."
fi

 
실행 결과:
 
[root@lovelace if]# ./grade.sh
Please input your grade:
You don't input your grade....
[root@lovelace if]# ./grade.sh
Please input your grade:53
Right,Your grade is F.
[root@lovelace if]# ./grade.sh
Please input your grade:88
Good,Your grade is B.

 
결론: 조건 판단 은 셸 구문 에 자주 사용 되 며, 숙련 되 어야 하 며, 이 를 바탕 으로 좋 은 스 크 립 트 작성 능력 을 익 힐 수 있 습 니 다. 여러분 들 이 매일 큰 발전 을 이 룰 수 있 기 를 바 랍 니 다.
다음으로 전송:https://blog.51cto.com/lovelace/1211353

좋은 웹페이지 즐겨찾기