- 'If' 문 사용
- 'If-Else' 문 사용
- 'If-Elif-Else' 문 사용
- 'If' 문을 사용하여 빈 변수 확인
- 논리 연산자와 함께 'If' 문 사용
- 중첩된 'If' 문 사용
- 'If' 문을 사용하여 파일 존재 확인
- 'If' 문을 사용하여 디렉터리 존재 확인
- Regex와 함께 'If' 문 사용
- '사례' 진술의 사용
'If' 문 사용
이 예는 Bash에서 'if' 문의 간단한 사용을 보여줍니다. Bash에서는 숫자 값을 비교하는 데 6가지 유형의 비교 연산자를 사용할 수 있습니다. 이는 '-eq'(같음), '-ne'(같지 않음), '-le'(같지 않음), '-ge'(같음보다 큼), '-lt'(보다 작음) 및 '입니다. -gt”(보다 큼). '-lt' 및 '-eq'의 사용은 숫자가 99보다 작거나 '-lt' 연산자를 사용하여 확인되지 않았는지 여부를 다음 스크립트에 표시합니다. 숫자는 짝수 또는 홀수이며 '-eq' 연산자로 확인됩니다.
#!/bin/bash
#숫자 값 할당
( ( 숫자 = 오십 ) )
#'if' 문을 사용하여 숫자값을 확인합니다.
만약에 [ $번호 -lt 99 ]
그 다음에
에코 '번호가 유효합니다.'
BE
#짝수인지 아닌지 확인해보세요
만약에 [ $ ( ( $번호 % 2 ) ) -eq 0 ]
그 다음에
에코 '숫자는 짝수야.'
BE
산출 :
이전 스크립트를 실행하면 다음 출력이 나타납니다.
'If-Else' 문 사용
'if-else' 문의 사용은 다음 스크립트에 나와 있습니다. 사용자로부터 문자열 값을 가져와서 'if-else' 문을 사용하여 값이 'BLUE'인지 여부를 확인합니다.
#!/bin/bash
#사용자로부터 문자열 값을 가져옵니다.
읽다 -피 '좋아하는 색상을 입력하세요:' 색상
#'if-else' 문을 사용하여 문자열 값을 확인합니다.
만약에 [ ${색상^^} == '파란색' ]
그 다음에
에코 '괜찮습니다. 블루 색상도 가능합니다.'
또 다른
에코 ' $color 사용할 수 없습니다.'
BE
산출 :
'red'를 입력으로 사용하는 경우 이전 스크립트를 실행한 후 다음 출력이 나타납니다.
'blue'가 입력으로 사용되는 경우 이전 스크립트를 실행한 후 다음 출력이 나타납니다.
'If-Elif-Else' 문 사용
'if-elif-else' 문의 사용은 다음 스크립트에 나와 있습니다. 사용자로부터 숫자를 가져와 일치하는 항목이 발견될 때까지 다른 값으로 확인합니다. 일치하는 항목이 있으면 해당 메시지가 인쇄됩니다. 일치하는 항목이 없으면 기본 메시지가 인쇄됩니다.
#!/bin/bash#사용자로부터 ID 값을 가져옵니다.
읽다 -피 '일련번호를 입력하세요:' 연속물
#'if-elif-else' 문을 사용하여 입력값을 확인합니다.
만약에 [ $ 직렬 == '4523' ]
그 다음에
에코 '당신은 A그룹에 선정되었습니다.'
엘리프 [ $ 직렬 == '8723' ]
그 다음에
에코 '당신은 B그룹에 선정되었습니다.'
엘리프 [ $ 직렬 == '3412' ]
그 다음에
에코 '당신은 C그룹에 선정되었습니다.'
또 다른
에코 '당신은 선택되지 않았습니다' .
BE
산출:
값 8723으로 스크립트를 실행하면 다음 출력이 나타납니다.
값이 9078인 스크립트를 실행하면 다음 출력이 나타납니다.
'If' 문을 사용하여 빈 변수 확인
if 문을 사용하지 않고 변수가 비어 있는지 확인하는 방법은 다음 스크립트와 같습니다. 이 작업을 수행하기 위해 'if' 문에서 '-z' 옵션이 사용됩니다.
#!/bin/bash#사용자로부터 ID 값을 가져옵니다.
읽다 -피 '일련번호를 입력하세요:' 연속물
#변수가 비어 있는지 확인
만약에 [ ! -와 함께 $ 직렬 ]
그 다음에
#'if-elif-else' 문을 사용하여 입력값을 확인합니다.
만약에 [ $ 직렬 == '690' ]
그 다음에
에코 '당신은 1팀에 선발되었습니다.'
엘리프 [ $ 직렬 == '450' ]
그 다음에
에코 '당신은 2팀에 선발되었습니다.'
또 다른
에코 '당신은 선택되지 않았습니다' .
BE
또 다른
에코 '일련번호가 제공되지 않습니다.'
BE
산출 :
값이 690인 스크립트를 실행하면 다음 출력이 나타납니다.
입력 값이 없으면 스크립트를 실행한 후 다음 출력이 나타납니다.
논리 연산자와 함께 'If' 문 사용
Bash 조건문에서는 세 가지 유형의 논리 연산자를 사용할 수 있습니다. 이는 논리 OR(||), 논리 AND(&&) 및 논리 NOT(!)입니다. 사용자로부터 코드 값을 가져옵니다. 입력값이 비어 있지 않은 경우 논리 OR을 사용하여 두 개의 코드 값으로 값을 확인합니다. 값이 임의의 코드와 일치하면 해당 메시지가 인쇄됩니다. 일치하는 코드가 없으면 기본 메시지가 인쇄됩니다.
#!/bin/bash#사용자로부터 강좌 코드를 가져옵니다.
읽다 -피 '강의 코드를 입력하세요:' 암호
#변수가 비어 있는지 확인
만약에 [ ! -와 함께 $code ]
그 다음에
#'if-elif-else' 문을 사용하여 입력값을 확인합니다.
만약에 [ [ $code == 'CSE-106' || $code == 'CSE-108' ] ]
그 다음에
에코 'CSE 과정.'
엘리프 [ [ $code == 'BBA-203' || $code == 'BBA-202' ] ]
그 다음에
에코 'BBA 과정.'
또 다른
에코 '잘못된 강좌 코드입니다.'
BE
또 다른
에코 '강좌 코드가 제공되지 않습니다.'
BE
산출 :
입력값 “CSE-108”로 스크립트를 실행하면 다음과 같은 출력이 나타납니다.
입력 값 'BBA-56'으로 스크립트를 실행하면 다음 출력이 나타납니다.
중첩된 'If' 문 사용
'if' 조건이 다른 'if' 조건 내에 사용되는 경우 이를 중첩된 'if' 문이라고 합니다. 중첩된 'if'를 사용하는 방법은 다음 스크립트에 나와 있습니다. 사용자로부터 두 개의 마크 값을 가져옵니다. 입력 값이 비어 있지 않은 경우 첫 번째 'if' 조건은 '$theory' 값이 60보다 크거나 같은지 여부를 확인합니다. 첫 번째 'if' 조건이 'true'를 반환하면 두 번째 'if' 조건은 '$lab' 값이 50보다 크거나 같은지 여부를 확인합니다. 두 번째 'if' 조건도 'true'를 반환하면 성공 메시지가 인쇄됩니다. 그렇지 않으면 실패 메시지가 인쇄됩니다.
#!/bin/bash#이론점수 받아가세요
읽다 -피 '이론 마크를 입력하세요:' 이론
#실험실 마크를 받아보세요
읽다 -피 '실험실 마크를 입력하세요:' 랩
#변수가 비어 있는지 확인
만약에 [ [ ! -와 함께 $이론 && ! -와 함께 $lab ] ]
그 다음에
#중첩된 'if' 문을 사용하여 입력 값을 확인합니다.
만약에 [ $이론 -ge 60 ]
그 다음에
만약에 [ $lab -ge 오십 ]
그 다음에
에코 '당신은 합격했습니다.'
또 다른
에코 '당신은 실패했습니다.'
BE
또 다른
에코 '당신은 실패했습니다.'
BE
또 다른
에코 '이론이나 실험 마크가 비어 있습니다.'
BE
산출 :
입력 값 중 하나 또는 둘 다 비어 있으면 다음 출력이 나타납니다.
78을 이론 점수로, 45를 실험 점수로 선택하면 다음과 같은 출력이 나타납니다. 여기서 두 번째 'if' 조건은 'false'를 반환합니다.
67을 이론 점수로, 56을 실험 점수로 선택하면 다음과 같은 결과가 나타납니다. 여기서 두 'if' 조건은 모두 'true'를 반환합니다.
이론 점수 50점, 실험 점수 80점을 선택하면 다음과 같은 출력이 나타납니다. 여기서 첫 번째 'if' 조건은 'false'를 반환합니다.
'If' 문을 사용하여 파일 존재 확인
파일의 존재는 bash 스크립트를 통해 두 가지 방법으로 확인할 수 있습니다. 하나는 '[]' 대괄호와 함께 '-f' 연산자를 사용하는 것입니다. 또 다른 방법은 'test' 명령과 '-f' 연산자를 사용하는 것입니다. 파일 이름을 가져와 '-f' 연산자와 함께 'if' 조건을 사용하여 파일의 존재를 확인합니다. 그런 다음 다른 파일 이름을 선택하고 'test' 명령 및 '-f' 연산자와 함께 'if' 문을 사용하여 파일의 존재를 확인합니다.
#!/bin/bash#파일이름을가져가세요
읽다 -피 '파일 이름을 입력하세요:' fn1
#`test`를 사용하지 않고 파일이 존재하는지 확인하십시오.
만약에 [ -에프 $fn1 ]
그 다음에
에코 ' $fn1 파일이 존재.'
또 다른
에코 ' $fn1 파일이 없습니다.'
BE
#개행 추가
에코
#다른 파일 이름을 사용하세요
읽다 -피 '다른 파일 이름을 입력하세요:' fn2
#`test`를 사용하여 파일이 존재하는지 확인하십시오.
만약에 시험 -에프 $fn2 ; 그 다음에
에코 ' $fn2 파일이 존재.'
#`test`를 사용하여 파일이 비어 있는지 확인하십시오.
만약에 시험 -와 함께 $fn2 ; 그 다음에
에코 ' $fn2 파일이 비어있습니다.'
또 다른
에코 ' $fn2 파일이 비어 있지 않습니다.'
BE
또 다른
에코 ' $fn2 파일이 없습니다.'
BE
산출 :
'test.txt' 및 'testing.txt'를 파일 이름으로 사용하여 스크립트를 실행하면 다음 출력이 나타납니다. 출력에 따르면 두 파일이 모두 현재 위치에 존재하며 'testing.txt' 파일은 비어 있습니다.
'f1.txt' 및 'test.txt'를 파일 이름으로 사용하여 스크립트를 실행하면 다음 출력이 나타납니다. 출력에 따르면 'f1.txt' 파일은 현재 위치에 존재하지 않으며 'test.txt' 파일은 비어 있지 않습니다.
'If' 문을 사용하여 디렉터리 존재 확인
디렉터리의 존재 여부는 파일과 마찬가지로 Bash 스크립트에서도 두 가지 방법으로 확인할 수 있습니다. 하나는 '[]' 대괄호와 함께 '-d' 연산자를 사용하는 것입니다. 또 다른 방법은 'test' 명령과 '-d' 연산자를 사용하는 것입니다. 디렉터리 이름을 가져와 '-d' 연산자와 함께 'if' 조건을 사용하여 디렉터리의 존재를 확인합니다. 그런 다음 다른 디렉터리 이름을 가져와서 'test' 명령 및 '-d' 연산자와 함께 'if' 문을 사용하여 파일의 존재를 확인합니다.
#!/bin/bash#디렉터리 이름을 사용하세요
읽다 -피 '디렉터리 이름을 입력하세요:' 너1
#`test`를 사용하지 않고 디렉토리가 존재하는지 확인하십시오.
만약에 [ -디 $dir1 ]
그 다음에
에코 ' $dir1 디렉토리가 존재합니다.'
또 다른
에코 ' $dir1 디렉토리가 존재하지 않습니다.'
BE
#개행 추가
에코
#다른 디렉토리 이름을 사용하세요
읽다 -피 '다른 디렉토리 이름을 입력하세요:' dir2
#`test`를 사용하여 파일이 존재하는지 확인하십시오.
만약에 시험 -디 $dir2
그 다음에
에코 ' $dir2 디렉토리가 존재합니다.'
또 다른
에코 ' $dir2 디렉토리가 존재하지 않습니다.'
BE
산출 :
'temp' 및 'files' 디렉터리 이름을 사용하여 스크립트를 실행하면 다음 출력이 나타납니다. 출력에 따르면 두 디렉터리가 모두 현재 위치에 존재합니다. 그런 다음 'ls' 명령이 실행되어 디렉터리의 내용을 확인합니다.
'testing' 및 'new' 디렉터리 이름을 사용하여 스크립트를 실행하면 다음 출력이 나타납니다. 출력에 따르면 두 디렉터리가 모두 현재 위치에 존재하지 않습니다. 그런 다음 'ls' 명령의 출력에는 두 디렉터리가 모두 존재하지 않는 것으로 표시됩니다.
Regex와 함께 'If' 문 사용
다음 스크립트는 정규식과 함께 'if' 문을 사용하여 입력 데이터의 유효성을 검사하는 방법을 보여줍니다. 여기서 두 개의 입력 값은 사용자로부터 가져와 '$bookname' 및 '$bookprice' 변수에 저장됩니다. 'if' 조건은 '$bookname' 변수에 모든 알파벳 문자가 포함되어 있고 '$bookprice'에 숫자가 포함되어 있는지 확인하기 위해 스크립트에서 사용됩니다.
#!/bin/bash#사용자로부터 책명과 가격을 알아내세요
에코 -N '책 이름을 입력하세요:'
읽다 책 이름
에코 -N '도서 가격을 입력하세요:'
읽다 장부가
#책 이름에 알파벳만 포함되어 있는지 확인하세요
만약에 ! [ [ ' $bookname ' =~ [ A-Za-z ] ] ] ; 그 다음에
에코 '도서 이름이 잘못되었습니다.'
또 다른
에코 '도서 이름이 유효합니다.'
BE
#책 가격에 숫자만 포함되어 있는지 확인하세요
만약에 ! [ [ ' $bookprice ' =~ [ 0 - 9 ] ] ] ; 그 다음에
에코 '책 가격은 숫자만 포함할 수 있습니다.'
또 다른
에코 '도서 가격이 유효합니다.'
BE
산출 :
책 이름이 'Bash 프로그래밍'이고 책 가격이 78인 입력 값을 사용하여 스크립트를 실행하면 다음 출력이 나타납니다.
책 이름으로 90을 입력하고 책 가격으로 'Bash'를 입력하여 스크립트를 실행하면 다음 출력이 나타납니다.
'사례' 진술의 사용
'case' 문은 'if-elif-else' 문의 대안이지만 'if-elif-else' 문의 모든 작업은 'case' 문을 사용하여 수행할 수 없습니다. 'case' 문의 간단한 사용법은 다음 스크립트에 나와 있습니다. 현재 월 값으로 사용자로부터 숫자 값을 가져옵니다. 그런 다음 'case' 문에서 일치하는 값이 발견되면 해당 월이 인쇄됩니다. 그렇지 않으면 기본 메시지가 인쇄됩니다.
#!/bin/bash#현재 월 값을 숫자로 가져옵니다.
읽다 -피 '오늘의 달을 숫자로 입력하세요:' b_월
#월 이름을 인쇄하기 전에 텍스트를 인쇄하십시오.
에코 -N '이번 달 이름은 '
#입력에 따라 일치하는 월 이름을 찾아 인쇄합니다.
사례 $b_월 ~에
1 | 01 ) 에코 '1월.' ;;
2 | 02 ) 에코 '2월.' ;;
삼 | 03 ) 에코 '3월.' ;;
4 | 04 ) 에코 '4월.' ;;
5 | 05 ) 에코 '5월.' ;;
6 | 06 ) 에코 '6월.' ;;
7 | 07 ) 에코 '칠월.' ;;
8 | 08 ) 에코 '팔월.' ;;
9 | 09 ) 에코 '구월.' ;;
10 ) 에코 '십월.' ;;
열하나 ) 에코 '십일월.' ;;
12 ) 에코 '12월.' ;;
* ) 에코 '찾을 수 없습니다.' ;;
에삭
산출 :
값이 6인 스크립트를 실행하면 다음 출력이 나타납니다.
값이 09인 스크립트를 실행하면 다음 출력이 나타납니다.
값이 14인 스크립트를 실행하면 다음 출력이 나타납니다.
결론
'if' 및 'case' 문을 사용하여 조건부 논리를 다양하게 사용하는 방법이 이 튜토리얼의 10개 예제에 나와 있습니다. 이 튜토리얼을 읽고 나면 새로운 Bash 사용자를 위해 Bash에서 조건부 논리를 사용하는 개념이 명확해집니다.