JavaScript v.2.0. Ветвление If, else, switch
차례:
의사 결정은 컴퓨터 프로그래밍의 가장 기본적인 개념 중 하나입니다. 다른 프로그래밍 언어와 마찬가지로
if
,
if..else
,
if..elif..else
및 중첩 된
if
문을 사용하여 특정 조건에 따라 코드를 실행할 수 있습니다.
이 자습서에서는 Bash
if
문의 기본 사항을 안내하고 셸 스크립트에서이를 사용하는 방법을 보여줍니다.
if
문
조건이 다른 형식을 가질 수있는
if
배쉬. 가장 기본적인
if
문은 다음 형식을 따릅니다.
if TEST-COMMAND then STATEMENTS fi
if
문은
if
키워드로 시작하고 그 뒤에 조건식과
then
키워드가옵니다. 명령문은
fi
키워드로 끝납니다.
TEST-COMMAND
가
True
평가되면
STATEMENTS
가 실행됩니다.
TEST-COMMAND
가
False
리턴하면 아무 일도 일어나지 않으며
STATEMENTS
는 무시됩니다.
일반적으로 항상 코드를 들여 쓰고 빈 줄로 코드 블록을 구분하는 것이 좋습니다. 대부분의 사람들은 4 칸 또는 2 칸 들여 쓰기를 선택합니다. 들여 쓰기와 빈 줄은 코드를 더 읽기 쉽고 체계적으로 만듭니다.
주어진 숫자가 10보다 큰지 확인하는 다음 예제 스크립트를 살펴 보겠습니다.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
코드를 파일에 저장하고 명령 행에서 실행하십시오.
bash test.sh
스크립트에 숫자를 입력하라는 메시지가 표시됩니다. 예를 들어 15를 입력하면 15가 10보다 커서
test
명령이
true
평가되고
then
절의
echo
명령이 실행됩니다.
The variable is greater than 10.
if..else
문
Bash
if..else
문은 다음 형식을
if..else
.
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
TEST-COMMAND
가
True
평가되면
STATEMENTS1
이 실행됩니다. 그렇지 않으면
TEST-COMMAND
가
False
리턴하면
STATEMENTS2
가 실행됩니다. 명령문에는
else
절이 하나만있을 수 있습니다.
이전 예제 스크립트에
else
절을 추가해 보겠습니다.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
if..elif..else
문
Bash
if..elif..else
문은 다음 형식을
if..elif..else
.
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
TEST-COMMAND1
이
True
평가되면
STATEMENTS1
이 실행됩니다.
TEST-COMMAND2
가
True
평가되면
STATEMENTS2
가 실행됩니다. 테스트 명령이
True
평가되지 않으면
STATEMENTS2
가 실행됩니다.
명령문에 하나 이상의
elif
절이있을 수 있습니다.
else
절은 선택 사항입니다.
조건은 순차적으로 평가됩니다. 조건이
True
반환하면 나머지 조건이 수행되지 않고 프로그램 제어가
if
문의 끝으로 이동합니다.
이전 스크립트에
elif
절을 추가해 봅시다:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
중첩 된
if
문
Bash를 사용하면
if
문 내에
if
문을 중첩시킬 수 있습니다. 여러
if
문을 다른
if
문 안에 넣을 수 있습니다.
다음 스크립트는 세 개의 숫자를 입력하라는 메시지를 표시하고 세 개의 숫자 중 가장 큰 숫자를 인쇄합니다.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
출력 결과는 다음과 같습니다.
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
중첩 된
if
문을 사용하는 대신 일반적으로 case 문을 사용하는 것이 더 효율적입니다.
여러 조건
논리
OR
및
AND
연산자를 사용하면
if
문에서 여러 조건을 사용할 수 있습니다.
다음은 세 가지 숫자 중 가장 큰 숫자를 인쇄하는 다른 버전의 스크립트입니다. 이 버전에서는 중첩 된
if
문 대신 논리
AND
(
&&
) 연산자를 사용합니다.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
테스트 연산자
Bash에서
test
명령은 다음 구문 형식 중 하나를 사용합니다.
test EXPRESSION]
테스트 표현식을 무효화하려면 논리
NOT
(
!
) 연산자를 사용하십시오. 문자열을 비교할 때 단어 분리 또는 글 로빙 문제를 피하기 위해 항상 작은 따옴표 나 큰 따옴표를 사용하십시오.
다음은 가장 일반적으로 사용되는 연산자입니다.
-
-n
VAR
-VAR
의 길이가 0보다 큰 경우 True입니다.-z
VAR
-VAR이 비어 있으면 참입니다.STRING1 = STRING2
-True [STRING1과 STRING2가 같습니다.STRING1 != STRING2
-True STRING1과 STRING2가 동일하지 않습니다.INTEGER1 -eq INTEGER2
참 INTEGER1과 INTEGER2가 같습니다.INTEGER1 -gt INTEGER2
-True INTEGER1이 INTEGER2보다 큽니다.INTEGER1 -lt INTEGER2
참 INTEGER1이 INTEGER2보다 작습니다.INTEGER1 -ge INTEGER2
참 INTEGER1이 INTEGER2보다 크거나 같습니다.INTEGER1 -le INTEGER2
-True INTEGER1이 INTEGER2보다 작거나 같습니다.-h
FILE
-FILE이 존재하고 기호 링크 인 경우 참입니다.-r
FILE
-FILE이 존재하고 읽을 수있는 경우 True입니다.-w
FILE
-FILE이 존재하고 쓰기 가능한 경우 참입니다.-x
FILE
-FILE이 존재하고 실행 가능한 경우 True입니다.-d
FILE
-FILE이 존재하고 디렉토리 인 경우에 true입니다.-e
FILE
유형 (노드, 디렉토리, 소켓 등)에 관계없이 FILE이 존재하고 파일 인 경우 참입니다.-f
FILE
-FILE이 존재하고 일반 파일 (디렉토리 또는 장치가 아님) 인 경우 참입니다.
결론
if
,
if..else
및
if..elif..else
문을 사용하면 주어진 조건을 평가하여 Bash 스크립트의 실행 흐름을 제어 할 수 있습니다.